SpringBoot中实现启动任务的实现步骤
我们在项目中会用到项目启动任务,即项目在启动的时候需要做的一些事,例如:数据初始化、获取第三方数据等等,那么如何在SpringBoot中实现启动任务,一起来看看吧
SpringBoot中提供了两种项目启动方案,CommandLineRunner和ApplicationRunner
一、CommandLineRunner
使用CommandLineRunner,需要自定义一个类区实现CommandLineRunner接口,例如:
importorg.springframework.boot.CommandLineRunner; importorg.springframework.core.annotation.Order; importorg.springframework.stereotype.Component; /** *项目启动任务类 */ @Component @Order(100) publicclassStartTaskimplementsCommandLineRunner{ @Override publicvoidrun(String...args)throwsException{ } }
我们首先使用@Component将该类注册成为Spring容器中的一个Bean
然后使用@Order(100)标明该启动任务的优先级,值越大,表示优先级越小
实现CommandLineRunner接口,并重写run()方法,当项目启动时,run()方法会被执行,run()方法中的参数有两种传递方式
1、在IDEA中传入参数
2、将项目打包,在启动项目时,输入以下命令:
java-jardemo-0.0.1-SNAPSHOT.jarhelloworld
二、ApplicationRunner
ApplicationRunner与CommandLineRunner的用法基本一致,只是接收的参数不一样,可以接收key-value形式的参数,如下:
importorg.springframework.boot.ApplicationArguments; importorg.springframework.boot.ApplicationRunner; importorg.springframework.core.annotation.Order; importorg.springframework.stereotype.Component; /** *项目启动任务类 */ @Component @Order(100) publicclassStartTaskimplementsApplicationRunner{ @Override publicvoidrun(ApplicationArgumentsargs)throwsException{ } }
关于run方法的参数ApplicationArguments:
1、args.getNonOptionArgs();可以用来获取命令行中的无key参数(和CommandLineRunner一样)
2、args.getOptionNames();可以用来获取所有key/value形式的参数的key
3、args.getOptionValues(key));可以根据key获取key/value形式的参数的value
4、args.getSourceArgs();则表示获取命令行中的所有参数
传参方式:
1、在IDEA中传入参数
2、将项目打包,在启动项目时,输入以下命令:
java-jardemo-0.0.1-SNAPSHOT.jarhelloworld--name=xiaoming
以上就是在SpringBoot中实现项目启动任务的两种方式,用法基本一致,主要体现在传参的不同上
到此这篇关于SpringBoot中实现启动任务的实现步骤的文章就介绍到这了,更多相关SpringBoot启动任务内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。