springboot 中,CommandLineRunner、ApplicationRunner、InitializingBean、@PostConstruct 执行顺序
划水。。。
CommandLineRunner、ApplicationRunner、InitializingBean、@PostConstruct 执行顺序
InitializingBean 是 Spring 提供的一个接口,它只有一个方法 afterPropertiesSet(),该方法会在容器初始化完成后被调用。
ApplicationRunner 是 Spring Boot 提供的一个接口,它有一个方法 run(),该方法会在 Spring Boot 应用程序启动完成后被调用。
@PostConstruct 是 Java 提供的一个注解,它可以标注在方法上,该方法会在 bean 初始化完成后被调用。
执行顺序:
@PostConstruct
InitializingBean#afterPropertiesSet()
ApplicationRunner#run()
CommandLineRunner#run()
代码demo
@Component
public class MyBean implements InitializingBean, ApplicationRunner, CommandLineRunner {
@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");
}
@Override
public void run(String... args) {
System.out.println("CommandLineRunner#run()");
}
}
蓝天和白云是标配。
分类:
springboot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?