原版

SSM框架的Web程序主要用到了三个技术:

  • Spring:用到了注解和自动装配,就是Spring的两个精髓IOC(反向控制)和 AOP(面向切面编程)。

  • SpringMVC:用到了MVC模型,将逻辑代码放到Controller层处理。

  • Mybatis:用到了与数据库打交道的层面,放在所有的逻辑之后,处理与数据库的CRUD相关的操作。

要完成一个功能:

  • 先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。

  • 写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进行的那些操作,比如 insert、selectAll、selectByKey、delete、update等。

  • 写Mapper.java,将Mapper.xml中的操作按照id映射成Java函数。

  • 写Service.java,为控制层提供服务,接受控制层的参数,完成相应的功能,并返回给控制层。

  • 写Controller.java,连接页面请求和服务层,获取页面请求的参数,通过自动装配,映射不同的URL到相应的处理函数,并获取参数,对参数进行处理,之后传给服务层。

  • 写JSP页面调用,请求哪些参数,需要获取什么数据。

阅读全文 »

RubyLouvre

今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑问无法得到正确的解释,为什么我们现在做java的web开发,会选择struts2或者springMVC这样的框架,而不是使用servlet加jsp这样的技术呢?特别是现在我们web的前端页面都是使用velocity这样的模板语言进行开发,抛弃了jsp,这样的选择又会给我们java的web开发带来什么样的好处,延着这个问题的思路,我又发现新的疑问,为什么现在很多java企业级开发都会去选择spring框架,spring框架给我们开发的应用带来了什么?这么一想还真是问倒我了,我似乎很难找到一串能让人完全信服的答案,最终我发现,这些我认为我很熟悉很常用的技术,其实还有很多让我陌生不解的地方,这些陌生和不解的地方也正是我是否能更高层次使用它们的关键,今天这篇文章我就来讲讲这些问题,不过struts2,spring这样的技术经过这么多年的积累已经是相当庞大和复杂,它们的面很广,本人虽然已经用了它们多年,还是有很多技术不熟悉和不清楚,所以本文不是全面对我题目做出解答的文章,而是根据我现有知识结构来理解这个问题。

阅读全文 »

最近几年,前端技术迅猛发展,差不多每年都会冒出一款主流的框架。 每次新开业务线或启动新项目时,是第一件事就是纠结:使用什么框架,重造什么轮子?我很高兴应CSDN的邀请谈我的看法。

在五六年,移动端还没有兴起,我们没有什么选择,就是jQuery。有人会说,jQuery只是类库,不是框架;但那时前端业务还没有像今天这么繁重,原本是后端干的事,全部挪到前端来,因为光是jQuery就可以包打天下。jQuery不够用,还有成千上万的jQuery的插件呢。于是问题就是这样一一衍生出来了,一个页面太多jQuery插件了,请求数太多了,于是我们得打包。打包需要我们对插件有规划。于是这需求在社区上逐渐形成了某些规则,其中最出名的是AMD规范,体现上requirejs这个加载库上。

requirejs是前端技术发展上的一个分水岭。javascript在es6之前一直没有自己的加载机制,requirejs的出现意味着前端可以向更大规模发展。以后我说的技术选型,一个非常重要的甄选点, 就是 是否存在加载器机制或符合某个模块规范。

阅读全文 »

好吧,我去了地球的另一边,并且因为我的PC不在旁边,只有一台MacBook Pro可以用于开发。这篇文章应该被看作是一个加强书签,我列出了使得MacBook能实现目的的所有必需安装的工具,即用于Java和稍后也会用于JavaScript的开发。

需要提一下的是,直到现在,我仍然是Windows用户(XP / 7)和Linux(Ubuntu /Mint/Cent OS)。在写这篇文章的时候,我的MacBook Pro上运行的是OS X Yosemite Version 10.10.5。

阅读全文 »

我常常问面试者,“你最喜欢的编程语言是什么?” 答案几乎如出一辙,“工作中我只选择正确的编程语言。” 废话,谁会故意选择错误的语言呢?这显然是为了逃避选择一种具体的编程语言,以免选择了一种我不喜欢的。

如果面试者这样回答“我最熟悉某一种编程语言”,这同样也没有回答我的问题。

当时要是我的话,我会这样回答,“我最喜欢 Python,因为使用它编程让我感到快乐,但我只在某某情况下使用它。其余时间,我使用 XYZ...”

然而,大约一年之前,我产生了一个奇怪的想法:Java 适合所有的编程工作。(在你吐槽之前,我暂停一下,)这个想法根植于你感觉正确但却与现实不符的一些观点,而且这个想法从来都没有流行起来,但不管怎样,请让我先来解释一下。

Python 的确是我喜爱的编程语言,用它编程真的让我感到快乐。它让我的大脑感到快乐,它和伪代码是如此契合,以至于用它来工作能让人真正感到愉悦。

阅读全文 »