最近手头上的一些项目上使用的框架诸如:SSH,SSI,SpringMVC+Ibaties中,这些框架都用一个共同点,就是都使用到了Spring。
由此,可以断言Spring在JAVA WEB中的重要性。
Spring中,最重要的两个东西莫过于IOC(控制反转和依赖注入)和AOP(面向切面)。
IOC:
具体的讲,当一个角色需要另外一个角色协助的时候,在传统的程序设计中,通常有调用者来创建被调用者的实例。但是在spring中创建被调用者将不再有调用者完成,因此叫控制反转。创建被调用对象有Spring来完成,在容器实例化对象的时候主动的将被调用者(或者说它的依赖对象)注入给调用对象,而并不需要调用者创建被调用者的示例。
AOP:
Spring对面向切面编程提供了强有力的支持,通过它让我们将业务逻辑从应用服务(如事务管理)中分离出来,实现了高内聚开发,应用对象只关注业务逻辑,不再负责其它系统问题(如日志、事务等)。Spring支持用户自定义切面。
当然,Spring也是一个容器,因为它包含并且管理应用对象的生命周期和配置。如对象的创建、销毁、回调等。
Spring作为一个框架,提供了一些基础功能,(如事务管理,持久层集成等),使开发人员更专注于开发应用逻辑。
这里可以总结一下使用Spring感觉比较好的地方。
1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑。
2.可以提供众多服务:事务管理,WS等。
3.AOP的很好支持,方便面向切面编程。
4.对主流的框架提供了很好的集成支持,如Hibernate,Struts2,Itaties等
5.Spring DI机制降低了业务对象替换的复杂性。
6.Spring属于低侵入,代码污染极低。
7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部