Spring Bean的作用域及生命周期
Bean的作用域
在bean声明时它有一个scope属性,它是用于描述bean的作用域。
可取值有:
singleton:单例 代表在spring ioc容器中只有一个Bean实例 (默认的scope)
prototype多例 每一次从spring容器中获取时,都会返回一个新的实例
request 用在web开发中,将bean对象request.setAttribute()存储到request域中
session 用在web开发中,将bean对象session.setAttribute()存储到session域中一般常用的值是singleton与prototype
Bean的生命周期
- instantiate bean对象实例化
- populate properties 封装属性
- 如果Bean实现BeanNameAware执行setBeanName
- 如果Bean实现BeanFactoryAwar或ApplicationContextAwar设置工厂setBeanFactory或上下文对象setApplicationContext
- 如果存在类实现BeanPostProcessor(后处理Bean),执行postProcessBeforeInitialization
- 如果Bean实现InitializingBean执行afterPropertiesSet
- 调用自定义的init-method方法
- 如果存在类实现BeanPostProcessor(处理Bean),执行postProcessAfterInitialization
- 执行业务处理
- 如果Bean实现DisposableBean执行destroy
- 调用自定义的destroy-method
对于bean的生命周期方法: 第三步与第四步是让Bean了解spring容器。
第五步与第八步 可以针对指定的Bean进行功能增强,这时一般会使用动态代理.
第六步与第十步:通过实现指定的接口来完成init与destroy操作
但是在开发中一般不使用第6步与第10步,原因是我们可以使用第7步与第11步来完成。
第7步与第11步的初始化与销毁操作它无耦合,推荐使用的。但是必须在配置文件中指定初始化与销毁的方法
<bean id="beanLifeCycle" class="com.nwtxxb.bean.BeanLifeCycle" init-method="myInit" destory-method="myDestory"><property name="name" value="nwtxxb"></property>
</bean>
总结:
对于bean的生命周期,我们需要关注的主要有两个方法:
1. 增强bean的功能可以使用后处理Bean, BeanPostProcessor
2. 如果需要初始化或销毁操作我们可以使用init-method destroy-method注意:destroy-method只对scope=singleton有效果。
Spring Bean的作用域及生命周期相关推荐
- spring bean的作用域和生命周期
一.spring bean的作用域 五种作用域:singleton.prototype.request.session.globalSession request.session和global ses ...
- Spring【Bean的作用域与生命周期】
Spring[Bean的作用域与生命周期]
- session作用域_看完这篇Bean的作用域与生命周期,问到面试官不敢问-乐字节java...
Bean的作用域与生命周期 Bean的作用域 默认情况下,我们从Spring容器中拿到的对象均是单例的,对于bean的作用域类型如下: singleton 作用域 注意: lazy-init是懒加载, ...
- 学习Spring(六) -- Spring中Bean的作用域以及生命周期
2019独角兽企业重金招聘Python工程师标准>>> Bean的作用域 默认情况下,bean的作用域为单例模式(singleton): 在applicationContext创建时 ...
- Spring从入门到入土——Bean的作用域与生命周期
Bean的作用域 在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean.简单地讲,bean就是由IoC容器初始化.装配及管理的对象 类别 说明 sin ...
- Bean的作用域和生命周期-----Spring
1.之前学过的变量的作用域:是指变量在方法中或者作用域中的某种行为,现在我们来进行了解一下Bean的作用域 咱们的Java中的公共类称之为Bean或者是JavaBean,Spring对象中的生命周期指 ...
- bean的作用域和生命周期
一.Bean作用域 二.生命周期 其中,这个类实现各种接口重写各种方法,会按bean的声明周期按序执行: 其中,自定义的初始化和自定义销毁的方法不是实现接口重写,而是成员方法,并且在装配bean即在x ...
- spring bean的创建,生命周期
1. 初探spring 什么是spring Spirng 是分层的Java se/ee应用full-stack(web层mvc dao层jdbc模板 业务事务管理)轻量级开源框架,以IoC(inver ...
- spring bean实现init/destory生命周期方法的三种方式
实现InitializingBean和DisposableBean接口,实现afterPropertiesSet()和destroy()方法 使用@PostConstruct和@PreDestroy进 ...
最新文章
- 盘点提高国内访问 GitHub 的速度的 9 种方案
- 认识RAID磁盘阵列
- 树形结构:从二分查找,二叉搜索树寻找最近祖先,从递归到迭代,实现技巧总结
- request的其他细节
- 【POJ - 1328】Radar Installation(贪心+计算几何)安装雷达辐射岛屿
- 输入输出流——字符流部分
- linux与unix的区别_Linux与Unix
- java中将list、map对象写入文件
- NSGA2算法原理及python实现
- BP神经网络模型---第一篇(M-P模型)
- 互联网广告与计算广告学
- 68ES6_解构_数组操作_对象操作
- 利用js书写正三角形
- HDS VSP G系列存储管理平台MPC安装
- 初识nodejs16
- dbt(data build tool) is an open source data transformation, and using Jinji templating
- 笔记本系统转移到固态硬盘
- CodeForces - 581B - Luxurious Houses 逆序处理水
- arduino环境esp32跑freertos系统实现触摸检测及wifi控制
- 在java中如何输入角度_在Java中获取角度的反余弦
热门文章
- 【数据竞赛】学特征工程就看这篇,解析IJCAI18亚军方案之特征工程
- 【NLP】ACL 2010-2020研究趋势总结
- 【机器学习实战】意大利Covid-19病毒感染数学模型及预测
- 技术宝典 | NeCodeGen:基于 clang 的源到源转译工具
- 互联网1分钟 |1210
- 互联网1分钟 |1205
- 关于MySQL线程池,这也许是目前最全面的实用帖!(转载)
- SQL字符串处理--按分割符拆分字符串T-SQL to Split a varchar into Words
- selenium webdriver (12) -- 鼠标和键盘
- 《货币是个什么东西》笔记