Spring
控制反转,依赖注入
注入方式
1. 构造函数注入
2. Setter属性注入
3. 注解注入
实例化bean方式
1. 使用类构造函数实例化
2. 使用静态工厂方法实例化
3. 使用实例工厂方法实例化
Bean作用域
作用域 | 描述 |
在每个Spring IoC容器中一个bean定义对应一个对象实例。 | |
一个bean定义对应多个对象实例。 | |
在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例, 它们依据某个bean定义创建而成。该作用域仅在基于web的Spring ApplicationContext情形下有效。 | |
在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring ApplicationContext情形下有效。 | |
在一个全局的HTTP Session中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于web的Spring ApplicationContext情形下有效。 |
优点
1. 降低组件之间的耦合度,实现软件各层之间的解耦。
2. 可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。
3. 容器提供了AOP技术,利用它很容易实现如权限拦截、运行期监控等功能。
4. 容器提供的众多辅作类,使用这些类能够加快应用的开发,如:JdbcTemplate、 HibernateTemplate。
5. Spring对于主流的应用框架提供了集成支持,如:集成Hibernate、JPA、Struts等,更利于应用的开发
AOP
面向切面编程(AOP)通过提供另外一种思考程序结构的途经来弥补面向对象编程(OOP)的不足。在OOP中模块化的关键单元是类(classes),而在AOP中模块化的单元则是切面。