spring学习笔记整理--01
时间:2011-02-04 来源:何志武
spring:
spring是一个开源的控制反转(Inversion of Control 即IoC)和面向切面(AOP)的容器框架,它的主要目的是简化企业开发。
控制反转:
控制反转就是应用(使用实例的类)本身不负责依赖对象的创建以及维护,依赖对象的创建以及维护是由外部容器负责的。这样控制权就由应用本身转移到了外部容器,控制权的转移就是所谓的反转。
依赖注入(Dependency Injection即DI容器):
在运行期间,由外部容器动态(set方法或者构造函数)地将依赖对象注入到组件中。
为何要使用spring:
1.降低组件之间的耦合度,实现软件各层之间的解耦
2.可以使用容器提供的众多服务,如事务管理服务、消息服务等等。当我们使用容器管理事务时,就不再需要手工控制事务,也不需要处理复杂的事务传播
3.容器提供了AOP技术,利用它很容易实现如权限拦截、允许期监控等功能。
4.容器提供的众多辅助类,使用这些类能够加快应用的开发,如JDBCTemplate、HibernateTemplate。
5.Spring对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,这样更便于应用的开发。
6.容器提供了单例模式,不需要开发人员编写实现代码。
轻量级与重量级:
对于spring容器,它提供了很多服务,但这些服务并不是默认为应用打开的,应用需要某种服务,还需要指明使用该服务,如果应用使用的服务很少,如:只使用了spring核心服务,那么我们可以认为此时应用属于轻量级的,如果应用使用了spring提供的大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范中所有的功能,所以它属于重量级。