springboot 启动后执行特定的方法
2018-02-09 15:53
901 查看
在平时的开发中可能遇到这样的问题,在springboot 容器启动之后执行特定的方法或者类。
数据库连接之类的。SpringBoot给我们提供了两个接口来帮助我们实现这种需求。这两个接口分别为CommandLineRunner和ApplicationRunner
这两个接口中有一个run方法,我们只需要实现这个方法即可。这两个接口的不同之处在于:ApplicationRunner中run方法的参数为ApplicationArguments,而CommandLineRunner接口中run方法的参数为String数组。下面我写两个简单的例子,来看一下这两个接口的实现。
ApplicationRunner:
@Component //被 spring 容器管理@Order(2) //如果多个自定义的 ApplicationRunner ,用来标明执行的顺序public class MyApplicationRunner implements ApplicationRunner{
@Override public void run(ApplicationArguments applicationArguments) throws Exception{
System.out.println("-------------->" + "项目启动,now=" + new Date());
System.out.println("获取到的参数: "+applicationArguments.getOptionNames());
System.out.println("获取到的参数: "+applicationArguments.getNonOptionArgs());
System.out.println("获取到的参数: "+applicationArguments.getSourceArgs());
//myTimer(); }
public static void myTimer(){
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override public void run() {
System.out.println("------定时任务--------");
}
}, 0, 2000);
}
}TestCommandLineRunner :@Component@Order(1)
public class TestCommandLineRunner implements CommandLineRunner {
@Autowired //自己写的特定的类,用来调用自己的写的方法 private testClass test;
@Override public void run (String... args) throws Exception{
System.out.println("<<<<<<<<<<<<<<<<<< 测试 CommandLineRunner 接口");
test.printLn();
}
}
数据库连接之类的。SpringBoot给我们提供了两个接口来帮助我们实现这种需求。这两个接口分别为CommandLineRunner和ApplicationRunner
这两个接口中有一个run方法,我们只需要实现这个方法即可。这两个接口的不同之处在于:ApplicationRunner中run方法的参数为ApplicationArguments,而CommandLineRunner接口中run方法的参数为String数组。下面我写两个简单的例子,来看一下这两个接口的实现。
ApplicationRunner:
@Component //被 spring 容器管理@Order(2) //如果多个自定义的 ApplicationRunner ,用来标明执行的顺序public class MyApplicationRunner implements ApplicationRunner{
@Override public void run(ApplicationArguments applicationArguments) throws Exception{
System.out.println("-------------->" + "项目启动,now=" + new Date());
System.out.println("获取到的参数: "+applicationArguments.getOptionNames());
System.out.println("获取到的参数: "+applicationArguments.getNonOptionArgs());
System.out.println("获取到的参数: "+applicationArguments.getSourceArgs());
//myTimer(); }
public static void myTimer(){
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override public void run() {
System.out.println("------定时任务--------");
}
}, 0, 2000);
}
}TestCommandLineRunner :@Component@Order(1)
public class TestCommandLineRunner implements CommandLineRunner {
@Autowired //自己写的特定的类,用来调用自己的写的方法 private testClass test;
@Override public void run (String... args) throws Exception{
System.out.println("<<<<<<<<<<<<<<<<<< 测试 CommandLineRunner 接口");
test.printLn();
}
}
相关文章推荐
- springboot 学习之路 9 (项目启动后就执行特定方法)
- Spring Boot学习--项目启动时执行特定方法
- spring启动自动后执行特定方法
- Spring boot启动之后执行方法 CommandLineRunner
- spring项目启动完成后,自动执行一次某个特定方法。
- spring boot在启动项目之后执行的实现方法
- SpringBoot项目不占用端口启动的方法
- spring在web容器启动时执行初始化方法
- Spring Boot启动端口修改方法
- Spring启动时就执行的方法
- spring启动完成后执行特定代码
- springBoot 设置服务启动时执行代码
- 项目启动 spring初始化bean之后执行指定方法
- spring在web容器启动时执行初始化方法
- spring boot 配置启动后执行sql, 中文乱码
- Spring Boot容器加载时执行特定操作(推荐)
- 启动springboot jar脚本和jenkins集成gitlab执行execute shell
- Spring Boot使用方法小札(2):执行定时任务
- spring boot容器加载完后执行特定操作
- spring boot aop 记录方法执行时间