一、Bean作用域:
Singleton:单例-整个容器只有一个对象实例默认是单例(使用Singleton定义的bean在spring容器中将只有一个实例,也就是说无论多少个bean引用ta,始终指向同一个对象)
Prototype:原型-每次获取bean都产生一个新的对象(每个通过spring容器获取prototype定义的bean时,容器都将创建一个新的bean实例)
Request:每次请求时创建一个新的对象
Session:在会话的范围内是一个对象
Global session:--只在portlet下有用,表示application
Application:在应用范围中是一个对象
二、Spring Bean的生命周期:
在一个bean实例被初始化时,需要执行一系列的初始化操作以达到可用的状态。同样的,当一个bean不在被调用时需要进行相关的析构操作,并从bean容器中移除。
Spring Bean Factory负责管理在spring容器中被创建的bean的生命周期。bean的生命周期由两组回调(call back)方法组成。
1、初始化之后调用的回调方法。
2、销毁之前调用的回调方法。
Spring框架提供了四种方式来管理bean的生命周期事件:
<1> InitializingBean 和 DisposableBean 回调接口(初始化bean和 /dɪˈspoʊzəbl/ Bean)
<2> 针对特殊行为的其他Aware接口
<3> Bean 配置文件中的 Custom init()方法和 destroy()方法
<4> @PostConstruct 和@PreDestroy 注解方式