在实际项目开发中,我们可能会希望在项目启动后去加载一些资源信息、执行某段特定逻辑等等初始化工作,这时候我们就需要用到SpringBoot提供的开机自启
的功能,SpringBoot给我们提供了两个方式:CommandLineRunner
和ApplicationRunner
,CommandLineRunner
、ApplicationRunner
接口是在容器启动成功后的最后一步回调,这两种方法提供的目的是为了满足,在项目启动的时候立刻执行某些方法
接下来给大家讲解一下这两个方式如何使用
如何创建SpringBoot项目这里不做过多介绍
实现CommandLineRunner接口
/**
* @author Gjing
**/
@Component
public class MyStartRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("自己定义的第一个启动后事件开始执行。。。。。。。");
}
}
启动项目
如果需要多个监听类,我们只需要定义多个就行了,通过@Order注解或者实现Order接口来标明加载顺序
/**
* @author Gjing
*/
@Component
@Order(1)
public class MyStartRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("自己定义的第一个启动后事件开始执行。。。。。。。");
}
}
/**
* @author Gjing
**/
@Component
@Order(2)
public class MyStartRunner2 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("自己定义的第二个启动后事件开始执行。。。。。。。");
}
}
启动项目
创建自定义监听类
实现ApplicationRunner接口
/**
* @author Gjing
**/
@Component
public class MyApplicationRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("我自定义的ApplicationRunner事件。。。。。。");
}
}
启动项目
ApplicationRunner
中run方法的参数为ApplicationArguments
,而CommandLineRunner
接口中run方法的参数为String数组。想要更详细地获取命令行参数,那就使用ApplicationRunner
接口
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。