Spring中Bean创建完后打印语句的两种方法

 更新时间:2023年07月05日 08:43:39   作者:全 洛  
这篇文章主要介绍了Spring中Bean创建完后打印语句的两种方法,一个是实现InitializingBean接口,另一个使用@Bean注解和initMethod属性,通过代码示例介绍的非常详细,感兴趣的小伙伴可以参考阅读

Bean的生命周期

Bean的生命周期包括四个阶段:

  • 实例化阶段(Instantiation):容器通过调用构造函数或者工厂方法来创建Bean的实例。

  • 属性赋值阶段(Populate properties):容器将相应的属性值设置给Bean的实例,可以通过setter方法、直接字段注入或者其他自定义的方式完成属性赋值。

  • 初始化阶段(Initialization):在Bean的属性赋值完成后,容器会调用相关的初始化方法(如果有的话),如实现了InitializingBean接口的afterPropertiesSet()方法,或者通过@Bean注解的initMethod属性指定的方法。开发者可以在初始化方法中进行一些额外的操作,例如数据校验、初始化资源等。

  • 使用阶段(In use):

  • 经过初始化阶段后,Bean进入可用状态,可以被容器及其他对象使用。

  • 销毁阶段(Destruction):当Bean不再被使用时,容器可以对其进行销毁操作。这包括调用实现了DisposableBean接口的destroy()方法,或者通过@Bean注解的destroyMethod属性指定的方法。开发者可以在销毁方法中释放资源、关闭连接等。

两种方式在Bean创建完后打印语句(Bean的初始化阶段)

实现InitializingBean接口:

  • 创建一个类,实现InitializingBean接口。

  • 在该类中实现afterPropertiesSet()方法,在该方法中编写创建Bean后要执行的操作,例如打印语句。

  • 当Bean被创建后,容器会自动调用afterPropertiesSet()方法。

    代码示例:

import org.springframework.beans.factory.InitializingBean;
public class MyBean implements InitializingBean {
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("Bean已创建。");
    }
}

使用@Bean注解和initMethod属性:

  • 在Bean对应的配置类中,使用@Bean注解定义Bean的创建方法。

  • 在@Bean注解中,使用initMethod属性指定在Bean创建后要调用的初始化方法。

  • 在初始化方法中,编写需要执行的操作,例如打印语句。

    代码示例:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
    @Bean(initMethod = "init")
    public MyBean myBean() {
        return new MyBean();
    }
}
public class MyBean {
    public void init() {
        System.out.println("Bean已创建。");
    }
}

最后

无论使用哪种方式,当Bean被创建后,打印语句将会在初始化阶段执行。

具体使用哪种方式都可以,当然根据具体的场景选择适合的方式最好。

到此这篇关于Spring中Bean创建完后打印语句的两种方法的文章就介绍到这了,更多相关Spring Bean打印语句内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中的随机数Random

    Java中的随机数Random

    这篇文章主要介绍了Java中的随机数Random,关于随机数的介绍不设置随机数种子,你每次随机抽样得到的数据都是不一样的。设置了随机数种子,能够确保每次抽样的结果一样,下面来了解具体的详细内容介绍吧
    2022-03-03
  • Java实现画图的详细步骤(完整代码)

    Java实现画图的详细步骤(完整代码)

    今天给大家带来的是关于Java的相关知识,文章围绕着Java实现画图的详细步骤展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • 基于SpringBoot+Tess4j实现图像文字识别功能

    基于SpringBoot+Tess4j实现图像文字识别功能

    文章介绍了Tesseract OCR技术及其Java封装库Tess4j,并详细描述了如何在SpringBoot项目中集成和使用Tess4j进行图像识别,文章涵盖了下载字体库、配置SpringBoot项目、编写测试代码及图片识别测试等步骤,并提供了中文、英文及中英混合识别的实战示例,需要的朋友可以参考下
    2026-04-04
  • Java泛型之上界下界通配符详解

    Java泛型之上界下界通配符详解

    这篇文章主要介绍了Java泛型之上界下界通配符详解,学习使用泛型编程时,更令人困惑的一个方面是确定何时使用上限有界通配符以及何时使用下限有界通配符。本文提供一些设计代码时要遵循的一些准则。,需要的朋友可以参考下
    2019-06-06
  • SpringBoot2.x实现给Controller的RequestMapping添加统一前缀

    SpringBoot2.x实现给Controller的RequestMapping添加统一前缀

    这篇文章主要介绍了SpringBoot2.x实现给Controller的RequestMapping添加统一前缀,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • java获取反射机制的3种方法总结

    java获取反射机制的3种方法总结

    这篇文章主要给大家介绍了关于java获取反射机制的3种方法,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Springboot修改post请求接口入参或重新赋值方式

    Springboot修改post请求接口入参或重新赋值方式

    这篇文章主要介绍了Springboot修改post请求接口入参或重新赋值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-05-05
  • Mybatis把返回结果封装成map类型的实现

    Mybatis把返回结果封装成map类型的实现

    本文主要介绍了Mybatis把返回结果封装成map类型的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Java利用redis实现防止接口重复提交

    Java利用redis实现防止接口重复提交

    本文主要为大家详细介绍了Java如何利用redis实现防止接口重复提交,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-11-11
  • 详解SpringBoot如何实现整合微信登录

    详解SpringBoot如何实现整合微信登录

    本文主要介绍了SpringBoot实现整合微信登录的过程详解,文中的示例代码介绍的非常详细,对我们的学习过工作有一定的参考价值,需要的朋友可以关注下
    2021-12-12

最新评论