在Spring作为关键词出现在每一位技术人员简历里面的今天,我们可以深刻地体会到Spring的春天真的来了。
Spring经过几年的实战和演变,已经不再是一个单纯的体系框架,而代表着轻量级Java开发的规范。
在短短几年的发展中,Spring给Java企业级开发带来了无比强大的推动力,让轻量级开发技术飞速发展。
通过Spring,我们不仅可以学到如何应对每个领域的最佳实践,而且可以深入理解Java企业级开发中各层面的体系结构。
Spring是什么?
Spring框架是一个开放源代码的J2EE应用程序框架,是针对bean的生命周期进行管理的轻量级容器(lightweight container),它解决了开发者在J2EE开发中遇到的许多常见的问题。
简单来说,Spring的目的就是为了帮助解决企业应用开发的复杂性。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情,然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益,所以Spring框架自诞生以来一直备受开发者青睐。
Spring是如何诞生的呢?
时间回到 2002 年,当时正是 Java EE 和 EJB 大行其道的时候,很多知名公司都是采用此技术方案进行项目开发。
这时候有一个美国的小伙子认为 EJB 太过臃肿,并不是所有的项目都需要使用 EJB 这种大型框架,应该会有一种更好的方案来解决这个问题。
他为了证明自己的想法是正确的,在 2002 年 10 月写了一本书《Expert One-on-One J2EE》,介绍了当时 Java 企业应用程序开发的情况,并指出了 Java EE 和 EJB 组件框架中存在的一些主要缺陷。
这个小伙子是谁呢?
他就是Rod Johnson。
Rod Johnson 在悉尼大学不仅获得了计算机学位,同时还获得了音乐学位,更令人吃惊的是在回到软件开发领域之前,他还获得了音乐学的博士学位。
现在 Rod Johnson 已经离开了 Spring,成为了一个天使投资人,同时也是多个公司的董事,早已走上人生巅峰。
(Rod Johnson)
Rod Johnson根据多年经验撰写的《Expert o-ne-on-One J2EE Design and Development》,其中对正统J2EE架构的臃肿、低效的质疑,引发了人们对正统J2EE的反思。
这本书也体现了Rod Johnson对技术的态度,技术的选择应该基于实证或是自身的经验,而不是任何形式的偶像崇拜或者门户之见,也正是这本书真正地改变了Java世界。
基于这本书的代码,Rod Johnson创建了轻量级的容器Spring,Spring的出现,使得正统J2EE架构一统天下的局面被打破。
基于Struts Hibernate Spring的J2EE架构也逐渐得到人们的认可,甚至在大型的项目架构中也逐渐开始应用,这也真正改变了Java世界。
Spring都有哪些特点呢?
1.方便解耦,简化开发
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。
有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
2.AOP编程的支持
通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。
3.声明式事务的支持
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。
4.方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。
例如:Spring对Junit4支持,可以通过注解方便的测试Spring程序。
5.方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。
6.降低Java EE API的使用难度
Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。
7.Java 源码是经典学习范例
Spring的源码设计精妙、结构清晰、匠心独运,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣,Spring框架源码无疑是Java技术的最佳实践范例。
如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使小伙伴收到意想不到的效果。