Spring 中的两个概念
IOC控制反转(也叫依赖注入DI):
AOP面向切面编程:
控制反转:当某个java对象需要(依赖)另一个java对象是,不是直接创建依赖对象,而是由实现IOC的容器来创建,并将它注入需要这个依赖对象的JAVA对象中;
一、Spring的依赖注入
- 构造器注入
- 设置(set方法)注入
- 接口注入(很少使用)
二、XML装配bean属性的含义
- Id指定该bean的唯一标识
- Class指定该bean的全限定名称
- Name 为该bean指定一个到多个别名
- Autowire 指定该bean属性的装配方式
- no 不使用自动装配,必须通过ref元素指定依赖;
- byname 根据属性名自动装配:过程将检查容器并根据名字查找属性完全一致的bean,并将其属性自动装配(没有property属性)
- bytype 如果容器中存在一个与指定属性类型相同的bean,那么将该属性自动装配;如果存在多个给类型的bean,那么将会抛出异常;(没有property属性)
- constructor:与bytype的方式类似,不同之处在于他应用于构造器参数;如果在容器中没有找到与构造器参数类型一致的bean,那么将抛出异常(没有property属性)
- autodetect:通过bean类的自省机制来决定是使用constructor还是bytype方式进行自动装配;
- scope:指定该bean的生存范围(存活时间)
- single 在一个容器中都存在一个实例,所有对给类型bean的依赖都引用这一单一实例
- property 每次都会重新生成一个新的对象给请求方
- request,session和global session 这三个类型只适用于web程序通常和XMLWEBApplicationContext共同适用
- request 容器会为每个http请求来生成一个对象
- session 为每个session创建一个对象
- global session
- Init-method 指定该bean的初始化方法;destory-method 指定该bean销毁方法
- Abstract 指定该bean是否为抽象的,如果是抽象的,则spring不会为他创建实例
- Parent 使用继承来减少配置工作