springboot~CommandLineRunner接口实现自动任务加载

CommandLineRunner接口可以实现任务的自动加载,当项目启动完后,就会自动去执行CommandLineRunner接口里的run方法,你可以实现多个CommandLineRunner的实例,使用order来控制执行的顺序!

/**
 * 项目启动后自动运行的代码CommandLineRunner
 */
@Component
@Order(1)
public class MyStartupRunner1 implements CommandLineRunner {
    private Logger logger = LoggerFactory.getLogger(MyStartupRunner1.class);

    @Override
    public void run(String... args) throws Exception {
        logger.info("MyStartupRunner1里的数据");
    }
}

@Component
@Order(2)
public class MyStartupRunner2 implements CommandLineRunner {
    private Logger logger = LoggerFactory.getLogger(MyStartupRunner1.class);

    @Override
    public void run(String... args) throws Exception {
        logger.info("MyStartupRunner2里的数据");

    }
}

程序在启动之后,可以看到控制台的日志,它们被执行了。

2020-05-26 10:25:07.400  INFO 27788 --- [           main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: getUsingGET_1
2020-05-26 10:25:07.433  INFO 27788 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-05-26 10:25:07.435  INFO 27788 --- [           main] com.lind.basic.BasicApplication          : Started BasicApplication in 6.967 seconds (JVM running for 8.118)
2020-05-26 10:25:07.437  INFO 27788 --- [           main] com.lind.basic.init.MyStartupRunner1     : MyStartupRunner1里的数据
2020-05-26 10:25:07.437  INFO 27788 --- [           main] com.lind.basic.init.MyStartupRunner1     : MyStartupRunner2里的数据
posted @   张占岭  阅读(1319)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2016-05-26 异步与并行~大话目录
2016-05-26 C#~异步编程再续~大叔所理解的并行编程(Task&Parallel)
2012-05-26 Attribute有啥用~MVC中标准的用户登陆验证
2011-05-26 为JS和C#类加一个扩展方法吧:P
2011-05-26 说说面向对象的故事,主人是人类!(三)
点击右上角即可分享
微信分享提示