日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網(wǎng)站首頁 編程語言 正文

spring中Bean創(chuàng)建完后打印語句的兩種方法(Bean的生命周期)

作者:全 洛 更新時間: 2023-07-04 編程語言

Bean的生命周期

Bean的生命周期包括四個階段:

  • 實例化階段(Instantiation):容器通過調(diào)用構(gòu)造函數(shù)或者工廠方法來創(chuàng)建Bean的實例。

  • 屬性賦值階段(Populate properties):容器將相應的屬性值設置給Bean的實例,可以通過setter方法、直接字段注入或者其他自定義的方式完成屬性賦值。

  • 初始化階段(Initialization):在Bean的屬性賦值完成后,容器會調(diào)用相關的初始化方法(如果有的話),如實現(xiàn)了InitializingBean接口的afterPropertiesSet()方法,或者通過@Bean注解的initMethod屬性指定的方法。開發(fā)者可以在初始化方法中進行一些額外的操作,例如數(shù)據(jù)校驗、初始化資源等。

  • 使用階段(In use):

  • 經(jīng)過初始化階段后,Bean進入可用狀態(tài),可以被容器及其他對象使用。

  • 銷毀階段(Destruction):當Bean不再被使用時,容器可以對其進行銷毀操作。這包括調(diào)用實現(xiàn)了DisposableBean接口的destroy()方法,或者通過@Bean注解的destroyMethod屬性指定的方法。開發(fā)者可以在銷毀方法中釋放資源、關閉連接等。

兩種方式在Bean創(chuàng)建完后打印語句(Bean的初始化階段)

實現(xiàn)InitializingBean接口:

  • 創(chuàng)建一個類,實現(xiàn)InitializingBean接口。

  • 在該類中實現(xiàn)afterPropertiesSet()方法,在該方法中編寫創(chuàng)建Bean后要執(zhí)行的操作,例如打印語句。

  • 當Bean被創(chuàng)建后,容器會自動調(diào)用afterPropertiesSet()方法。

    代碼示例:

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

使用@Bean注解和initMethod屬性:

  • 在Bean對應的配置類中,使用@Bean注解定義Bean的創(chuàng)建方法。

  • 在@Bean注解中,使用initMethod屬性指定在Bean創(chuàng)建后要調(diào)用的初始化方法。

  • 在初始化方法中,編寫需要執(zhí)行的操作,例如打印語句。

    代碼示例:

    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已創(chuàng)建。");
        }
    }
    

最后

無論使用哪種方式,當Bean被創(chuàng)建后,打印語句將會在初始化階段執(zhí)行。

具體使用哪種方式都可以,當然根據(jù)具體的場景選擇適合的方式最好。

原文鏈接:https://blog.csdn.net/weixin_43347550/article/details/131460054

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新