有人说,如果我需要在spingboot启动之后做一些事情怎么办,比如启动之后我需要检查并初始化数据库的表,或者我需要从数据库中缓存一些数据到static之中,或者我需要启动之后创建一个定时器等等,就是启动之后需要做什么事情!
要实现上面的事情,有两个接口可以做到,ApplicationRunner和CommandLineRunner,这实现任意一个就可以了!
ApplicationRunner实现:
@Component
//@Profile("test")
public class SpringRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("启动完成了 SpringRunner" );
}
}
CommandLineRunner实现:
@Component
public class CommandRunnerEvent implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("启动完成了 CommandRunnerEvent");
}
}
关闭监听,就是spring boot关闭的时候需要做什么事情,返回一个关闭的code?还是什么:
这里也是用两种方法可以做到,使用bean方法上使用@PreDestory注解,或者实现ExitCodeGenerator
@PreDestroy //spring 程序关闭
public void destory(){
System.out.println("spring 关闭");
}
@Bean //程序关闭
public ExitCodeGenerator exitCodeGenerator() {
System.out.println("程序退出");
return ()->42;
}