//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的生命周期 一共五大步 //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的生命周期一共 七步骤
|