当前位置:网站首页>3.Bean的作用域与生命周期
3.Bean的作用域与生命周期
2022-08-02 01:27:00 【你真是猫改不了吃小鱼干】
目录
作用域定义
Bean 的作用域是指 Bean 在 Spring 整个框架中的某种行为模式,比如 singleton 单例作用域,就 表示 Bean 在整个 Spring 中只有一份,它是全局共享的,那么当其他人修改了这个值之后,那么另一 个人读取到的就是被修改的值。
Bean 的 6 种作用域
Spring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域。Spring有 6 种作用域,最后四 种是基于 Spring MVC 生效的:
\1. singleton:单例作用域-->Spring默认选择该作用域
\2. prototype:原型作用域(多例作用域)
-->每次对该作用域下的Bean的请求都会创建新的实例:获取Bean(即通过applicationContext.getBean等方法获取)及装配Bean(即通过@Autowired注入)都是新的对象实例。
\3. request:请求作用域(一个请求响应范围)
\4. session:回话作用域(一个会话的范围)
\5. application:全局作用域(了解)
\6. websocket:HTTP WebSocket 作用域(了解)
注意:后 4 种状态是 Spring MVC 中的值,在普通的 Spring 项目中只有前两种。

Bean 执行流程
Bean 执行流程(Spring 执行流程):启动 Spring 容器 -> 实例化 Bean(分配内存空间,从无到有) -> Bean 注册到 Spring 中(存操作) -> 将 Bean 装配到需要的类中(取操作)。
Bean 生命周期
Bean 的生命周期分为以下 5 大部分:
1.实例化 Bean(为 Bean 分配内存空间,类似于new对象)
2.设置属性(Bean 注入和装配)
3.Bean 初始化
3.1实现了各种 Aware 通知的方法,如 BeanNameAware、BeanFactoryAware、 ApplicationContextAware 的接口方法;
3.2执行 BeanPostProcessor 初始化前置方法;
3.3.1执行 @PostConstruct 初始化方法,依赖注入操作之后被执行;
3.3.2执行自己指定的 init-method 方法(如果有指定的话);
3.4执行 BeanPostProcessor 初始化后置方法。
4.使用Bean
5.销毁Bean(容器关闭才可销毁)
执行流程

边栏推荐
猜你喜欢
随机推荐
Can‘t connect to MySQL server on ‘localhost3306‘ (10061) 简洁明了的解决方法
浅谈国产ERP的“横纵竖”三向发展态势
Shell入门终章
喜报 | AR 开启纺织产业新模式,ALVA Systems 再获殊荣!
Kubernetes — 核心资源对象 — Controller
flv.js解析与使用
Kubernetes — Flannel
ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that corresponds to your
制造企业数字化转型现状分析
kubernetes之服务发现
Can't connect to MySQL server on 'localhost3306' (10061) Simple and clear solution
"Introduction to Natural Language Processing Practice" Question Answering Robot Based on Knowledge Graph
【刷题篇】打家劫舍
Reflex WMS中阶系列6:对一个装货重复run pick会有什么后果?
YGG 公会发展计划第 1 季总结
网络请求技术--跨域
力扣 1161. 最大层内元素和
传统企业数字化转型需要经过几个阶段?
bool Frame::PosInGrid(const cv::KeyPoint &kp, int &posX, int &posY)
hash table









