spring中 IOC 操作 Bean管理 中 (bean的作用域 和bean的声明周期)

27 阅读1分钟

//1. bean的作用域

// 1.1 在spring里面 可以设置 创建的bean 是单实例或多实例

// 1.2 默认是 单实例

// 1.3 如何设置 单实例或者多实例

// 在 spring中的配置文件中 bean标签里有个属性 可以设置 scope 这个属性

// scope 属性 常用的值

// singleton 默认值 单实例 常用

// prototype 多实例 常用

// request 每次创建对象 都会把他放在 request域对象中 不常用

// session 每次创建对象 会把它放在 session 中 不常用

//

singleton 和 prototype 区别

// 1. singleton 表示 单实例 prototype 表示多实例

// 2. 设置 singleton 这个值时 加载spring配置文件时候 就会创建 实例对象

// 设置 prototype 这个值时 不是在加载 spring 配置文件中创建这个对象 而且在getBean() 获取对象的时候创建

//

2. bean的生命周期 一共五大步 3. //2.1 通过构造器创建bean 实例 (无参构造器)

//2.2 为bean的属性设置值和对其他bean引用 (调用set方法)

//2.3 调用bean的初始化方法 (需要进行配置)

//2.4 bean可以使用了 (获取对象)

//2.5 当容器关闭时候 调用bean的摧毁的方法 (需要进行配置销毁方法)

1.png

2.png

bean的后置处理器 实际 还有两小步

// 在第2.3步中

// 初始化之前 会 调用一个方法 会把Bean实例 传递 bean 后置处理器的方法

// 初始化之后 会 调用一个方法 会把Bean实例 传递 bean 后置处理器的方法

测试效果 创建一个类 实现 BeanPostProcessor 这个接口

// 这个接口 有两个 方法

// postProcessBeforeInitialization(初始化之前) 和

// postProcessAfterInitialization(初始化之后)

3.png

测试结果

4.png

所以说 bean的生命周期一共 七步骤