划水。。。
ApplicationRunner、InitializingBean、@PostConstruct 执行顺序
InitializingBean 是 Spring 提供的一个接口,它只有一个方法 afterPropertiesSet(),该方法会在容器初始化完成后被调用。
ApplicationRunner 是 Spring Boot 提供的一个接口,它有一个方法 run(),该方法会在 Spring Boot 应用程序启动完成后被调用。
@PostConstruct 是 Java 提供的一个注解,它可以标注在方法上,该方法会在 bean 初始化完成后被调用。
执行顺序:
@PostConstruct
InitializingBean#afterPropertiesSet()
ApplicationRunner#run()
代码demo
@Component
public class MyBean implements InitializingBean, ApplicationRunner {
@Override
public void afterPropertiesSet() {
System.out.println("InitializingBean#afterPropertiesSet()");
}
@Override
public void run(ApplicationArguments args) {
System.out.println("ApplicationRunner#run()");
}
@PostConstruct
public void postConstruct() {
System.out.println("@PostConstruct");
}
}
标签:InitializingBean,run,springboot,PostConstruct,afterPropertiesSet,ApplicationRunn
From: https://www.cnblogs.com/linzm14/p/17930736.html