SpringBoot幾個重要的事件回調、監聽機制


(1)、需要配置在META-INF/Spring.factories

  1.ApplicationContextInitializer

 1 //
 2 // Source code recreated from a .class file by IntelliJ IDEA
 3 // (powered by Fernflower decompiler)
 4 //
 5 
 6 package org.springframework.context;
 7 
 8 public interface ApplicationContextInitializer<C extends ConfigurableApplicationContext> {
 9     //監聽ioc容器啟動
10     void initialize(C var1);
11 }

  2.SpringApplicationRunListener 

 1 //
 2 // Source code recreated from a .class file by IntelliJ IDEA
 3 // (powered by Fernflower decompiler)
 4 //
 5 
 6 package org.springframework.boot;
 7 
 8 import org.springframework.context.ConfigurableApplicationContext;
 9 import org.springframework.core.env.ConfigurableEnvironment;
10 
11 public interface SpringApplicationRunListener {
12     //監聽容器開始
13     void starting();
14     //SpringBoot環境准備好
15     void environmentPrepared(ConfigurableEnvironment environment);
16     //ioc容器准備好了
17     void contextPrepared(ConfigurableApplicationContext context);
18     //容器環境加載完成
19     void contextLoaded(ConfigurableApplicationContext context);
20 
21     void started(ConfigurableApplicationContext context);
22 
23     void running(ConfigurableApplicationContext context);
24     //SpringBoot創建完成
25     void failed(ConfigurableApplicationContext context, Throwable exception);
26 }

(2)、只需要放到ioc容器中即可

  1.ApplicationRunner 

 1 //
 2 // Source code recreated from a .class file by IntelliJ IDEA
 3 // (powered by Fernflower decompiler)
 4 //
 5 
 6 package org.springframework.boot;
 7 
 8 @FunctionalInterface
 9 public interface ApplicationRunner {
10     void run(ApplicationArguments args) throws Exception;
11 }

  2.CommandLineRunner 

 1 //
 2 // Source code recreated from a .class file by IntelliJ IDEA
 3 // (powered by Fernflower decompiler)
 4 //
 5 
 6 package org.springframework.boot;
 7 
 8 @FunctionalInterface
 9 public interface CommandLineRunner {
10     void run(String... args) throws Exception;
11 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM