@Bean的作用域
- singleton(单例模式),在获取spring容器中的对象时直接得到容器中的对象,如果把该对象的某些属性改变,则spring容器中的对象的属性也被改变, 默认是singleton
- prototype (多例模式),在过去spring容器的时候,得到的是该对象的一份拷贝,属性与spring容器中的属性一样,对该对象的属性改变,不会影响容器中对象的属性
- request ,每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP request 内有效。
- session每一次 HTTP 请求都会产生一个新的 bean,该 bean 仅在当前 HTTP session 内有效。
@Bean的生命周期包括五个部分
1. Bean对象的实例化
2. 对象的属性注入
3. 对象初始化
a. 包括各种Aware声明(BeanNameAware)
b. 初始化方法的前置方法
c. 初始化方法
d. 初始化方法的后置方法
4. 使用对象
5. 销毁对象