首页 > 其他分享 >Spring Bean 生命周期

Spring Bean 生命周期

时间:2024-12-05 23:28:37浏览次数:6  
标签:生命周期 Spring 调用 接口 Bean 销毁 如果 方法

  1. 创建 Bean 的实例:Bean 容器首先会找到配置文件中的 Bean 定义,然后使用 Java 反射 API 来创建 Bean 的实例。

  2. Bean 属性赋值/填充:为 Bean 设置相关属性和依赖,例如@Autowired 等注解注入的对象、@Value 注入的值、setter方法或构造函数注入依赖和值、@Resource注入的各种资源。

  3. Bean 初始化

  • 如果 Bean 实现了 BeanNameAware 接口,调用 setBeanName()方法,传入 Bean 的名字。
  • 如果 Bean 实现了 BeanClassLoaderAware 接口,调用 setBeanClassLoader()方法,传入 ClassLoader对象的实例。
  • 如果 Bean 实现了 BeanFactoryAware 接口,调用 setBeanFactory()方法,传入 BeanFactory对象的实例。
  • 与上面的类似,如果实现了其他 *.Aware接口,就调用相应的方法。
  • 如果有和加载这个 Bean 的 Spring 容器相关的 BeanPostProcessor 对象,执行postProcessBeforeInitialization() 方法
  • 如果 Bean 实现了InitializingBean接口,执行afterPropertiesSet()方法。
  • 如果 Bean 在配置文件中的定义包含 init-method 属性,执行指定的方法。
  • 如果有和加载这个 Bean 的 Spring 容器相关的 BeanPostProcessor 对象,执行postProcessAfterInitialization() 方法。

        4、销毁 Bean:销毁并不是说要立马把 Bean 给销毁掉,而是把 Bean 的销毁方法先记录下来,将来需要销毁 Bean 或者销毁容器的时候,就调用这些方法去释放 Bean 所持有的资源。

  • 如果 Bean 实现了 DisposableBean 接口,执行 destroy() 方法。

  • 如果 Bean 在配置文件中的定义包含 destroy-method 属性,执行指定的 Bean 销毁方法。或者,也可以直接通过@PreDestroy 注解标记 Bean 销毁之前执行的方法。

      

标签:生命周期,Spring,调用,接口,Bean,销毁,如果,方法
From: https://blog.csdn.net/liiilbb/article/details/144221936

相关文章

  • SpringBoot整合RabbitMQ
    RabbitMQ简介消息中间件:它接收消息并且转发,就类似于一个快递站,卖家把快递通过快递站,送到我们的手上,MQ也是这样,接收并存储消息,再转发。RabbitMQ在2007年由Rabbit科技有限公司发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之......
  • Spring Boot日志
    博主主页:数据结构专栏:Java数据结构数据库专栏:MySQL数据库JavaEE专栏:JavaEE软件测试专栏:软件测试关注博主带你了解更多知识目录1.?志概述1.1?志的?途1.系统监控2.数据采集3.?志审计2.?志使?2.1打印?志2.1.1在程序中得到?志对象2.1.2使??志对......
  • 13.SpringCloudSeata处理分布式事务
    分布式事务(引入)面试题你简历上写用微服务boot/cloud做过项目,你不可能只有一个数据库吧?请你谈谈多个数据库之间,你如何处理分布式事务?举例:在订单支付成功后,交易中心会调用订单中心的服务把订单状态更新,并调用物流中心的服务通知商品发货,同时还要调用积分中心的服务为用户增加相......
  • 【计算机毕业设计选题】最新毕业设计----基于SpringBoot的网上预订汽车票管理系统的设
    博主介绍:原计算机互联网大厂开发,十年开发经验,带领技术团队几十名,专注技术开发,计算机毕设实战导师,专注Java、Python、小程序、安卓、深度学习和算法开发研究。主要服务内容:选题定题、开题报告、任务书、程序开发、文档编写和辅导、文档降重、程序讲解、答辩辅导等,欢迎咨询~......
  • Spring Security集成JWT
    1.JWT基础1.1.JWT是什么:JWT(JSONWebToken)是一种用于在不同系统之间安全地传递信息的无状态令牌。它通常用于身份验证和授权,尤其在现代Web应用和API中非常常见。JWT是通过对传输的数据进行编码和签名来确保其完整性和安全性。JWT的特点:无状态:JWT不需要在服务器端保存状......
  • 【学习总结|DAY012】Javabean书写练习
    一、主要代码publicclassPhone{publicPhone(){}publicPhone(Stringbrand,intprice,Stringcolor){this.brand=brand;this.price=price;this.color=color;}Stringbrand;intprice;String......
  • SpringBoot自动装配原理
    SpringBoot自动装配原理在介绍SpringBoot自动装配原理之前我们需要先看一个注解-->SpringBootApplication@SpringBootApplicationpublicclassBackendApp{publicstaticvoidmain(String[]args){SpringApplication.run(BackendApp.class,args);......
  • 基于 SpringBoot 的招生管理系统
    摘要在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括招生管理系统的网络应用,在外国招生管理系统已经是很普遍的方式,不过国内的管理网站可能还处于起步阶段。招生管理系统具有招生公告信息管理功能的选择。招生管理系统采用java技术,基于springboo......
  • SpringBoot外卖点餐系统
    摘要随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络计算机的生活方式逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。互联网具有便利性,速度快,效率高,成本低等优点......
  • Spring注解之@ConditionalOnProperty
    @ConditionalOnProperty是SpringFramework提供的一个注解,用于控制某个配置类或Bean是否加载到Spring容器中。它的行为取决于某些配置属性的值。作用@ConditionalOnProperty会检查指定的配置属性(通常来自application.yml或application.properties文件),如果属性满......