【后端面经-Spring】Spring 中 bean 的生命周期)
端面,spring,bean,生命周期
·
浏览次数 : 24
小编点评
**目录**
1. bean简介
2. 生命周期
3. 参考资料
**1. bean简介**
bean是一个对象,是由Spring中的IoC创建、实例化的对象。一般的java对象,使用的时候创建,无需就释放内存进行销毁,而bean的生命周期更加复杂作用域singleton:默认单例形式,唯一的bean实例。prototype:每次请求都会创建一个新的bean实例。request:每次HTTP请求都会创建一个新的bean实例,该作用域仅在当前http request内有效。session:每次HTTP请求都会创建一个新的bean实例,该作用域仅在当前HTTP session内有效。global-session:全局session作用域,仅仅在基于portlet的web应用中才有意义,Spring5已经没有了。
**2. 生命周期实例化/创建依靠反射进行实例化,而不需要像一般的java对象一样手动创建;属性填充使用依赖注入进行属性填充;初始化完成初始化之后,bean可以使用;销毁容器关闭或者停止服务的时候,销毁该对象;类比人的一生:出生->学习->成长->死亡bean的一生:实例化->属性填充->初始化->销毁
**3. 参考资料**
1. 阿里云开发社区-《聊透 Spring bean 的生命周期》
2. 掘金社区-《Spring Bean 生命周期,好像人的一生》
3. SegmentFault- 《一文读懂 Spring Bean 的生命周期》
正文
1.bean简介
- bean是一个对象,是由Spring中的IoC创建、实例化的对象。
- 一般的java对象,使用的时候创建,不需要就释放内存进行销毁,而bean的生命周期更加复杂
- 作用域
singleton
:默认单例形式,唯一的bean实例。
prototype
:每次请求都会创建一个新的bean实例。
request
:每次HTTP请求都会创建一个新的bean实例,该作用域仅在当前http request内有效。
session
:每次HTTP请求都会创建一个新的bean实例,该作用域仅在当前HTTP session内有效。
global-session
:全局session作用域,仅仅在基于portlet的web应用中才有意义,Spring5已经没有了。
2. 生命周期
- 实例化/创建
- 依靠反射进行实例化,而不需要像一般的java对象一样手动创建;
- 属性填充
- 初始化
- 销毁
- 类比
- 人的一生:出生->学习->成长->死亡
- bean的一生:实例化->属性填充->初始化->销毁
3. 参考资料
- 阿里云开发社区-《聊透 Spring bean 的生命周期》
- 链接
- 细致全面讲述了 bean 的生命周期,辅以代码理解。
- 掘金社区-《Spring Bean 生命周期,好像人的一生》
- 链接
- 用形象的社会现象类比
bean
对象的生命周期,易于理解,并且用一个PersonBean
作为示例,给出生命周期对应的代码。
- SegmentFault- 《一文读懂 Spring Bean 的生命周期》
- 链接
- 详细介绍了bean对象的概念,以及bean的生命周期
与【后端面经-Spring】Spring 中 bean 的生命周期)相似的内容: