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 }