【Spring Boot】Spring Boot之五种容器启动后进行相关应用初始化操作方法
一、方式一,使用ApplicationListener<E extends ApplicationEvent>监听ContextRefreshedEvent事件
/** * @author zhangboqing * @date 2019-11-03 */ @Component public class MyApplicationListener implements ApplicationListener<ContextRefreshedEvent> { @Autowired private MyService myService; @Override public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) { System.out.println(">>>>>>>>>>>>>> ApplicationListener:" + myService.sayHello()); } }
二、方式二,使用SmartInitializingSingleton
/** * @author zhangboqing * @date 2019-11-03 */ @Component public class MySmartInitializingSingleton implements SmartInitializingSingleton { @Autowired private MyService myService; @Override public void afterSingletonsInstantiated() { System.out.println(">>>>>>>>>>>>>> SmartInitializingSingleton:" + myService.sayHello()); } }
三、方式三,使用SmartLifecycle
/** * @author zhangboqing * @date 2019-11-03 */ @Component public class MySmartLifecycle implements SmartLifecycle { @Autowired private MyService myService; @Override public void start() { System.out.println(">>>>>>>>>>>>>> SmartLifecycle:" + myService.sayHello()); } @Override public boolean isAutoStartup() { return true; } @Override public void stop(Runnable callback) { } @Override public void stop() { } @Override public boolean isRunning() { return false; } @Override public int getPhase() { return 0; } }
四、方式四,使用ApplicationRunner
/** * @author zhangboqing * @date 2019-11-07 */ @Component public class MyApplicationRunner implements ApplicationRunner { @Autowired private MyService myService; @Override public void run(ApplicationArguments args) throws Exception { System.out.println(">>>>>>>>>>>>>> ApplicationRunner:" + myService.sayHello()); } }
五、方式五,使用CommandLineRunner
/** * @author zhangboqing * @date 2019-11-07 */ @Component public class MyCommandLineRunner implements CommandLineRunner { @Autowired private MyService myService; @Override public void run(String... args) throws Exception { System.out.println(">>>>>>>>>>>>>> CommandLineRunner:" + myService.sayHello()); } }
你投入得越多,就能得到越多得价值