本文共 1162 字,大约阅读时间需要 3 分钟。
定义
IOC:就是由 Spring IOC 容器来负责对象的生命周期和对象之间的关系
依赖注入的三种注入方式
构造器注入:被注入的对象通过在其构造方法中声明依赖对象的参数列表,让外部知道它需要哪些依赖对象
Setter 方法注入:对象只需要为其所依赖的对象提供相对应的 setter 方法,通过该方法将依赖对象设置到被注入对象中
接口方式注入 :它需要被依赖的对象实现不必要的接口,带有侵入性,一般不推荐
自动装配(autowire)三种方式
<bean id=”” class=”” autowire=””/> autowire=byName/byType/constructor
byType 从IOC容器中找到与bean中的属性类型相同的bean对象注入。注意:IOC容器中,同一类型不可定义两次
byName 从IOC容器中找到与bean中的属性名称相同的bean对象注入。
constructor 把与Bean的构造器入参具有相同类型的Bean自动装配到构造器中。本质,通过Bean类型注入
Bean的对象三种创建方式
默认方式 使用无参构造方法创建对象
使用静态工厂方式创建对象
使用实例工厂方式创建对象
Bean的生命周期
Bean在IOC容器中,Bean会被给出初始化方法和销毁方法,两个方法都是IOC容器负责调用
定义bean的初始化方法 init-method=
定义bean的销毁方法 destroy-method="",此方法需要关闭IOC容器的关闭
//当加载IOC容器,获取上下文对象时,bean会创建
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); //当IOC容器关闭或销毁上下文时,bean被销毁context.close();
Bean的作用域
默认, IOC 容器里声明的 Bean 创建唯一一个实例, 容器内共享实例
Bean 的作用域类型:
类型 | 说明 |
singleton | 容器中仅一个 Bean 实例, Bean 以单例的形式存在 |
prototype | 从容器中获取 Bean 时,都会返回一个新的实例,原型 |
request | 每次 http 请求都创建新的 Bean , 仅用于 WebApplicationContext |
session | 同http Session共享一个Bean,不同http Session使用不同Bean |
globalSession | 同一个全局 Session 共享一个 bean, |
提示
hashCode是根据对象的地址获取哈希码,实际上是返回一个int整数
哈希码作用确定该对象在哈希表中的索引位置
转载地址:http://lpazi.baihongyu.com/