SpringBean的作用域

简介: SpringBean的作用域

一:Bean的作用域基础概念

当在 Spring 中定义一个 bean 时,你必须声明该 bean 的作用域的选项。例如,为了强制 Spring 在每次需要时都产生一个新的 bean 实例,你应该声明 bean 的作用域的属性为 prototype。同理,如果你想让 Spring 在每次需要时都返回同一个bean实例,你应该声明 bean 的作用域的属性为 singleton。

二、Bean的生命周期

Bean实例生命周期的执行过程如下:

  • Spring对bean进行实例化,默认bean是单例
  • Spring对bean进行依赖注入
  • 如果bean实现了BeanNameAware接口,spring将bean的id传给setBeanName()方法;
  • 如果bean实现了BeanFactoryAware接口,spring将调用setBeanFactory方法,将BeanFactory实例传进来;
  • 如果bean实现了ApplicationContextAware接口,它的setApplicationContext()方法将被调用,将应用上下文的引用传入到bean中;
  • 如果bean实现了BeanPostProcessor接口,它的postProcessBeforeInitialization方法将被调用;
  • 如果bean实现了InitializingBean接口,spring将调用它的afterPropertiesSet接口方法,类似的如果bean使用了init-method属性声明了初始化方法,该方法也会被调用;
  • 如果bean实现了BeanPostProcessor接口,它的postProcessAfterInitialization接口方法将被调用;
  • 此时bean已经准备就绪,可以被应用程序使用了,他们将一直驻留在应用上下文中,直到该应用上下文被销毁;
  • 若bean实现了DisposableBean接口,spring将调用它的distroy()接口方法。同样的,如果bean使用了destroy-method属性声明了销毁方法,则该方法被调用;

 


相关文章
|
存储 运维 安全
【运维知识高级篇】一篇文章带你搞懂GitHub基础操作!(注册用户+配置ssh-key+创建项目+创建存储库+拉取代码到本地+推送新代码到Github)
【运维知识高级篇】一篇文章带你搞懂GitHub基础操作!(注册用户+配置ssh-key+创建项目+创建存储库+拉取代码到本地+推送新代码到Github)
577 0
|
数据安全/隐私保护 安全 网络协议
|
存储 编解码 监控
NAS设备推荐品牌?
【6月更文挑战第30天】NAS设备推荐品牌?
813 60
|
JavaScript 前端开发
js对比日期大小
js对比日期大小
175 1
|
Linux 数据库
Linux安装达梦数据库达梦数据
Linux安装达梦数据库达梦数据
196 0
|
缓存 算法 安全
Java中的数据结构与算法优化策略
Java中的数据结构与算法优化策略
|
供应链 物联网 区块链
未来已来:探索新兴技术的发展趋势与应用场景
在科技飞速发展的今天,新兴技术如区块链、物联网、虚拟现实等正在逐渐改变我们的生活和工作方式。本文将深入探讨这些技术的发展趋势和应用场景,以及它们如何在未来塑造我们的世界。让我们一起踏上这场科技之旅,感受科技的魅力和力量。
117 0
|
设计模式 前端开发 算法
前端实现23种设计模式
在前端开发中,设计模式是一种被广泛应用的解决方案,它们可以帮助我们解决各种常见的问题,并提供可维护和可扩展的代码架构。本文将介绍前端开发中的23种设计模式,从创建型、结构型和行为型三个分类角度,对每个模式进行详细的解析和实际应用示例,帮助读者更好地理解和运用这些模式。
665 3
|
存储 算法 索引
第4章 MATLAB编程基础——4.7 MATLAB程序的调试
第4章 MATLAB编程基础——4.7 MATLAB程序的调试