springboot项目启动后初始化配置方法

前言:spring boot项目启动后,需要初始化一些数据如何实现?今天面试时碰到的一个问题记录,及解决方案!!!

 

方案1、自定义类实现CommandLineRunner接口,重写run()方法

复制代码
/**
 * @description:springboot项目启动后初始化配置类
 * @author: Amos
 * @email: lwh@gmail.com
 * @date: 2022/3/28 15:44
 */
@Slf4j
@Component
@Order(2)
public class ProjectRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        log.info("*** ProjectRunner ***");
        ProjectRunner.projectRunner();
    }

    public static String projectRunner() {
        return "ProjectRunner项目启动测试";
    }
}
复制代码

 

方案2、自定义类实现ApplicationRunner 接口,重写run()方法

复制代码
/**
 * @description:springboot项目启动后初始化配置类
 * @author: Amos
 * @email: lwh@gmail.com
 * @date: 2022/3/28 15:46
 */
@Component
@Order(3)
@Slf4j
public class Application2Runner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.info("*** Application2Runner ***");
        Application2Runner.run();

    }

    public static String run() {
        return "Application2Runner启动完毕";
    }
}
复制代码

 

控制台打印:

[restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with ...
[restartedMain] com.stream.Java8StreamApplication        : Started Java8StreamApplication in 2.347 seconds ...
[restartedMain] com.stream.config.ProjectRunner : *** ProjectRunner *** [restartedMain] com.stream.config.Application2Runner : *** Application2Runner ***

 

总结:

1)若有多个代码段需要执行,使用@Order注解设置执行的顺序

2)CommandLineRunner和ApplicationRunner两个接口除了参数不同,其他基本相同

3)CommandLineRunner和ApplicationRunner执行时机为容器启动完成的时候

posted @   市井丛林  阅读(890)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示