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的生命周期

  1. instantiate bean对象实例化
  2. populate properties 封装属性
  3. 如果Bean实现BeanNameAware执行setBeanName
  4. 如果Bean实现BeanFactoryAwar或ApplicationContextAwar设置工厂setBeanFactory或上下文对象setApplicationContext
  5. 如果存在类实现BeanPostProcessor(后处理Bean),执行postProcessBeforeInitialization
  6. 如果Bean实现InitializingBean执行afterPropertiesSet
  7. 调用自定义的init-method方法
  8. 如果存在类实现BeanPostProcessor(处理Bean),执行postProcessAfterInitialization
  9. 执行业务处理
  10. 如果Bean实现DisposableBean执行destroy
  11. 调用自定义的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的作用域及生命周期相关推荐

  1. spring bean的作用域和生命周期

    一.spring bean的作用域 五种作用域:singleton.prototype.request.session.globalSession request.session和global ses ...

  2. Spring【Bean的作用域与生命周期】

    Spring[Bean的作用域与生命周期]

  3. session作用域_看完这篇Bean的作用域与生命周期,问到面试官不敢问-乐字节java...

    Bean的作用域与生命周期 Bean的作用域 默认情况下,我们从Spring容器中拿到的对象均是单例的,对于bean的作用域类型如下: singleton 作用域 注意: lazy-init是懒加载, ...

  4. 学习Spring(六) -- Spring中Bean的作用域以及生命周期

    2019独角兽企业重金招聘Python工程师标准>>> Bean的作用域 默认情况下,bean的作用域为单例模式(singleton): 在applicationContext创建时 ...

  5. Spring从入门到入土——Bean的作用域与生命周期

    Bean的作用域 ​ 在Spring中,那些组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean.简单地讲,bean就是由IoC容器初始化.装配及管理的对象 类别 说明 sin ...

  6. Bean的作用域和生命周期-----Spring

    1.之前学过的变量的作用域:是指变量在方法中或者作用域中的某种行为,现在我们来进行了解一下Bean的作用域 咱们的Java中的公共类称之为Bean或者是JavaBean,Spring对象中的生命周期指 ...

  7. bean的作用域和生命周期

    一.Bean作用域 二.生命周期 其中,这个类实现各种接口重写各种方法,会按bean的声明周期按序执行: 其中,自定义的初始化和自定义销毁的方法不是实现接口重写,而是成员方法,并且在装配bean即在x ...

  8. spring bean的创建,生命周期

    1. 初探spring 什么是spring Spirng 是分层的Java se/ee应用full-stack(web层mvc dao层jdbc模板 业务事务管理)轻量级开源框架,以IoC(inver ...

  9. spring bean实现init/destory生命周期方法的三种方式

    实现InitializingBean和DisposableBean接口,实现afterPropertiesSet()和destroy()方法 使用@PostConstruct和@PreDestroy进 ...

最新文章

  1. 盘点提高国内访问 GitHub 的速度的 9 种方案
  2. 认识RAID磁盘阵列
  3. 树形结构:从二分查找,二叉搜索树寻找最近祖先,从递归到迭代,实现技巧总结
  4. request的其他细节
  5. 【POJ - 1328】Radar Installation(贪心+计算几何)安装雷达辐射岛屿
  6. 输入输出流——字符流部分
  7. linux与unix的区别_Linux与Unix
  8. java中将list、map对象写入文件
  9. NSGA2算法原理及python实现
  10. BP神经网络模型---第一篇(M-P模型)
  11. 互联网广告与计算广告学
  12. 68ES6_解构_数组操作_对象操作
  13. 利用js书写正三角形
  14. HDS VSP G系列存储管理平台MPC安装
  15. 初识nodejs16
  16. dbt(data build tool) is an open source data transformation, and using Jinji templating
  17. 笔记本系统转移到固态硬盘
  18. CodeForces - 581B - Luxurious Houses 逆序处理水
  19. arduino环境esp32跑freertos系统实现触摸检测及wifi控制
  20. 在java中如何输入角度_在Java中获取角度的反余弦

热门文章

  1. 【数据竞赛】学特征工程就看这篇,解析IJCAI18亚军方案之特征工程
  2. 【NLP】ACL 2010-2020研究趋势总结
  3. 【机器学习实战】意大利Covid-19病毒感染数学模型及预测
  4. 技术宝典 | NeCodeGen:基于 clang 的源到源转译工具
  5. 互联网1分钟 |1210
  6. 互联网1分钟 |1205
  7. 关于MySQL线程池,这也许是目前最全面的实用帖!(转载)
  8. SQL字符串处理--按分割符拆分字符串T-SQL to Split a varchar into Words
  9. selenium webdriver (12) -- 鼠标和键盘
  10. 《货币是个什么东西》笔记