1.Bean作用域的定义:Bean在Spring容器中的行为模式
lombok安装:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
<scope>provided</scope>
</dependency>
2.Spring Bean作用域(Scope):
单例模式(singleton):因为Spring在保证功能的同时还要保证性能,默认为单例模式;
通常无状态的Bean使用该作⽤域。⽆状态表示Bean对象的属性状态不需要更新;
原型模式(prototype):每次对该作⽤域下的Bean的请求都会创建新的实例;
请求作用域(request):每次http请求会创建新的Bean实例,适用于Spring MVC;
会话作用域(session):每次session会话共享bean,适用于Spring MVC;
全局作用域(application):一个http servlet context 中共享一个bean,Spring MVC;
HTTP WebSocket 作用域(websocket):网络长连接,只适用于Spring WebSocket;
3.Bean作用域的设置:
4.Spring的行流程:
启动容器——跟据配置完成Bean的初始化——注册Bean对象到容器中——装配Bean的属性
5. Bean生命周期:
Bean对象从诞生到销毁的整个生命过程;
Bean 的生命周期分为以下 5 部分:
1.实例化 Bean(为 Bean 分配内存空间)
2.设置属性(Bean 注入和装配)
3.Bean 初始化
- 实现了各种 Aware 通知的方法,如 BeanNameAware、BeanFactoryAware、ApplicationContextAware 的接口方法;
- 执行 BeanPostProcessor 初始化前置方法;
- 执行 @PostConstruct 初始化方法,依赖注入操作之后被执行;
- 执行自己指定的 init-method 方法(如果有指定的话);
- 执行 BeanPostProcessor 初始化后置方法。
4.使用 Bean
5.销毁 Bean
其中 @PostConstruct 是构造方法,在初始化阶段执行,而 @PreDestroy 会在消耗之前执行。