当前的形势是,非常多的Java程序员言必称Spring,如此大面积的程序员集体叫"春",体现了Spring框架的威力。春天正是叫春的好时候,你我一起来叫春吧。^_^
Spring的设计目的是简化J2EE开发,所以如果我们学习、使用它的时候还需要抓破头皮口吐白沫的话,岂不是个笑话?就我的经验来说,Spring在这方面做得很好,的确是一个很牛叉易用的框架。
之前我曾经设计过一个J2EE的考试系统,大量使用了EJB(详见http://blog.youkuaiyun.com/bromon/archive/2004/08/27/86291.aspx),我打算同样使用一个考试系统做例子,便于比较。两个系统的大致结构都差不多,不过新的版本采用了轻量级的方案,使用Hibernate作为ORM框架,所有的对象都交给spring来管理。
一、IoC与DI
首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其所好送其所要,然后嘿嘿……这个过程是复杂深奥的,我们必须自己设计和面对每个环节。传统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从 JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。