理解Spring中bean的作用域及其生命周期

作用域

  • singleton:Spring Ioc容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一个对象,作用域为Spring中的缺省(同一package)作用域
    理解Spring中bean的作用域及其生命周期_第1张图片
  • prototype:每次通过Spring容器获取prototype定义的bean时,容器都将创建一个新的Bean实例,每个Bean实例都有自己的属性和状态,而singleton全局只有一个对象
  • request:在一次http请求中,容器会返回该Bean的同一实例。而对不同的http请求则会产生新的Bean,而且该bean仅在当前http request内有效
  • session:在一次http session中,容器会返回该Bean的同一实例。而对不同的session请求则会创建新的实例,该bean实例仅在当前session内有效
  • global session:在一个全局的http session中,容器会返回该bean的同一个实例,仅在使用portlet context时有效

生命周期

一个bean实例被初始化时,需要执行一系列的初始化操作以达到可用状态
一个bean实例不再被调用时,需要进行相关的析构操作,从bean容器中移除

Spring bean factory负责管理在spring容器中被创建的bean的生命周期,bean的生命周期由两组回调(call back)方法组成:初始化后调用;销毁前调用

spring框架管理bean的生命周期事件:

  • InitializingBean、DisposableBean
  • 针对特殊行为的其他aware接口,提供Bean配置文件中的方法custom init()和destroy(),注解@PostConstruct和@PreDestroy

你可能感兴趣的:(理解录,spring,java,后端)