//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的摧毁的方法 (需要进行配置销毁方法)
bean的后置处理器 实际 还有两小步
// 在第2.3步中
// 初始化之前 会 调用一个方法 会把Bean实例 传递 bean 后置处理器的方法
// 初始化之后 会 调用一个方法 会把Bean实例 传递 bean 后置处理器的方法
测试效果 创建一个类 实现 BeanPostProcessor 这个接口
// 这个接口 有两个 方法
// postProcessBeforeInitialization(初始化之前) 和
// postProcessAfterInitialization(初始化之后)
测试结果
所以说 bean的生命周期一共 七步骤