1、 为什么使用Spring?
Spring(即Spring框架),是 Java 平台的一个开源的全栈(Full-stack)应用程序框架和控制反转容器实现 ,是为了解决企业应用开发的复杂性创建的,核心是控制反转(IoC)和面向切面编程(AOP)。
(1) 轻量
Spring框架使用的jar包都比较小,一般在1M以下或者几百kb,Spring核心功能的所需的jar包总共在3M左右。
总结来说,Spring框架运行占用的资源少,运行效率高,不依赖其他jar。
(2)方便解耦,简化开发
Spring作为一个容器,可以管理对象的生命周期、对象与对象之间的依赖关系,可以通过配置文件,来定义对象,以及设置与其他对象的依赖关系。
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。
(3)AOP编程的支持
通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。
(4)声明事物的支持
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。
(5)方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。例如:Spring对Junit4支持,可以通过注解方便的测试Spring程序。
(6)方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts、Hibernate、Hessian、Quartz)等的直接支持,简化框架的使用。
(7) 非侵入式
所谓非侵入式是指,Spring框架的API不会在业务逻辑上出现,由于业务逻辑中没有Spring 的 API,所以业务逻辑可以从 Spring 框架快速的移植到其他框架, 即与环境无关。
2、 Spring Framework 4.x 的体系结构
Spring 由 20 多个模块组成,它们可以分为数据访问/集成(Data Access/Integration)、Web、面向切面编程(AOP, Aspects)、应用服务器设备管理(Instrumentation)、消息发送(Messaging)、核心容器(Core Container)和测试(Test)。
相关链接:
Spring官网