Springboot2.x 初始化项目数据
1.初始化类
- CommandLineRunner 接口的 Component 会在所有 Spring Beans 都初始化之后,SpringApplication.run() 之前执行,非常适合在应用程序启动之初进行一些数据初始化的工作
@Component
public class MyRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("在SpringApplication.run() 之前执行");
}
}
2.在启动类上添加验证启动顺序
@SpringBootApplication
public class SpringApplication {
public static void main(String[] args) {
System.out.println("执行run之前");
SpringApplication.run(SpringApplication.class, args);
System.out.println("执行run之后");
}
}
3.使用注解 @PostConstruct 和 @PreDestroy
- @PostConstruct修饰的方法会在服务器加载Servle的时候运行,并且只会被服务器执行一次。
- PostConstruct在构造函数之后执行,init()方法之前执行。
- PreDestroy()方法在destroy()方法执行执行之后执行
/**
* @ PostConstruct修饰的方法会在服务器加载Servle的时候运行,
* 并且只会被服务器执行一次。
* PostConstruct在构造函数之后执行,init()方法之前执行。
*/
@PostConstruct
public void initializeUpdateExchangeRate() {
updateExchangeRate();
}