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

2023-12-23 06:09:48

作用域

  • singleton:Spring Ioc容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一个对象,作用域为Spring中的缺省(同一package)作用域
    在这里插入图片描述
  • 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

文章来源:https://blog.csdn.net/weixin_40497710/article/details/135133115
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。