理解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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!