首页 > 编程语言 > 详细

springboot项目启动成功后执行一段代码的两种方式

时间:2018-11-07 23:53:46      阅读:308      评论:0      收藏:0      [点我收藏+]

springboot项目启动成功后执行一段代码的两种方式

 

实现ApplicationRunner接口

package com.lnjecit.lifecycle;

import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

/**
 * @author lnj
 * createTime 2018-11-07 22:37
 **/
@Component
public class ApplicationRunnerImpl implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("通过实现ApplicationRunner接口,在spring boot项目启动后打印参数");
        String[] sourceArgs = args.getSourceArgs();
        for (String arg : sourceArgs) {
            System.out.print(arg + " ");
        }
        System.out.println();
    }
}

 

项目启动后,会打印如下信息:

技术分享图片

 

 

实现CommandLineRunner接口

package com.lnjecit.lifecycle;

import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

/**
 * @author lnj
 * createTime 2018-11-07 22:25
 **/
@Component
public class CommandLineRunnerImpl implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("通过实现CommandLineRunner接口,在spring boot项目启动后打印参数");
        for (String arg : args) {
            System.out.print(arg + " ");
        }
        System.out.println();
    }
}

 技术分享图片

 

 两种实现方式的不同之处在于run方法中接收的参数类型不一样

 

指定执行顺序

当项目中同时实现了ApplicationRunner和CommondLineRunner接口时,可使用Order注解或实现Ordered接口来指定执行顺序,值越小越先执行

 

案例地址

https://github.com/linj6/springboot-learn/tree/master/springboot-runner

 

参考资料

https://blog.csdn.net/zknxx/article/details/52196427

 

springboot项目启动成功后执行一段代码的两种方式

原文:https://www.cnblogs.com/zuidongfeng/p/9926471.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!