也许有很多的开发者曾经被过度EJB的宣传所迷惑,成为EJB的拥趸者,并因此拥有一段痛苦的开发经历。EJB的复杂源于它对所有的企业应用采用统一的标准,它认为所有的企业应用都需要分布式对象、远程事务,因此造就了EJB框架的极度复杂。这种复杂不仅造成陡峭的学习曲线,而且给开发、测试、部署都造成了很多额外的要求和工作量。其中最大的诟病就是难于测试,因为这种测试不能脱离EJB容器,每次测试都需要进行应用部署并启动EJB容器,而部署和启动EJB是一项费时费力的重型操作,其结果是测试工作往往成为开发工作的瓶颈。
但EJB并非一无是处,它提供了很多可圈可点的服务,如声明事务、透明持久化等。Spring承认EJB中存在优秀的东西,只是它的实现太复杂、要求过严过高,所以Spring在努力提供类似服务的同时尽量简化开发,Spring认为Java EE的开发应该更容易、更简单。在实现这一目标时,Spring一直贯彻并遵守“好的设计优于具体实现,代码应易于测试”这一理念,并最终带给我们一个易于开发、便于测试而又功能齐全的开发框架。概括起来,Spring给我们带来以下的好处:
[size=large][b] 方便解耦,简化开发[/b][/size]
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
[size=large][b] AOP编程的支持[/b][/size]
通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。
[size=large][b] 声明式事务的支持[/b][/size]
在Spring中,我们可以从单调烦闷的事务管理代码中解脱从来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。
[size=large][b] 方便程序的测试[/b][/size]
可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。
[size=large][b] 方便集成各种优秀框架[/b][/size]
Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz等)的直接支持。
[size=large][b] 降低Java EE API的使用难度[/b][/size]
Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。
[size=large][b] Java源码是经典学习范例[/b][/size]
Spring的源码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践的范例。如果想在短时内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。
但EJB并非一无是处,它提供了很多可圈可点的服务,如声明事务、透明持久化等。Spring承认EJB中存在优秀的东西,只是它的实现太复杂、要求过严过高,所以Spring在努力提供类似服务的同时尽量简化开发,Spring认为Java EE的开发应该更容易、更简单。在实现这一目标时,Spring一直贯彻并遵守“好的设计优于具体实现,代码应易于测试”这一理念,并最终带给我们一个易于开发、便于测试而又功能齐全的开发框架。概括起来,Spring给我们带来以下的好处:
[size=large][b] 方便解耦,简化开发[/b][/size]
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
[size=large][b] AOP编程的支持[/b][/size]
通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。
[size=large][b] 声明式事务的支持[/b][/size]
在Spring中,我们可以从单调烦闷的事务管理代码中解脱从来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。
[size=large][b] 方便程序的测试[/b][/size]
可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。
[size=large][b] 方便集成各种优秀框架[/b][/size]
Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz等)的直接支持。
[size=large][b] 降低Java EE API的使用难度[/b][/size]
Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。
[size=large][b] Java源码是经典学习范例[/b][/size]
Spring的源码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践的范例。如果想在短时内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。