微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringBoot中实现启动任务的实现步骤

这篇文章主要介绍了SpringBoot中实现启动任务的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

我们在项目中会用到项目启动任务,即项目在启动的时候需要做的一些事,例如:数据初始化、获取第三方数据等等,那么如何在SpringBoot 中实现启动任务,一起来看看吧

SpringBoot 中提供了两种项目启动方案,CommandLineRunner 和 ApplicationRunner

一、CommandLineRunner

使用 CommandLineRunner ,需要自定义一个类区实现 CommandLineRunner 接口,例如:

import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; /** * 项目启动任务类 */ @Component @Order(100) public class StartTask implements CommandLineRunner { @Override public void run(String... args) throws Exception { } }

我们首先使用 @Component 将该类注册成为 Spring 容器中的一个 Bean

然后使用 @Order(100) 标明该启动任务的优先级,值越大,表示优先级越小

实现 CommandLineRunner 接口,并重写 run() 方法,当项目启动时,run() 方法会被执行,run() 方法中的参数有两种传递方式

1、在 IDEA 中传入参数

2、将项目打包,在启动项目时,输入以下命令:

java -jar demo-0.0.1-SNAPSHOT.jar hello world

二、ApplicationRunner

ApplicationRunner 与 CommandLineRunner 的用法基本一致,只是接收的参数不一样,可以接收 key-value 形式的参数,如下:

import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; /** * 项目启动任务类 */ @Component @Order(100) public class StartTask implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { } }

关于 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 -jar demo-0.0.1-SNAPSHOT.jar hello world --name=xiaoming

以上就是在 SpringBoot 中实现项目启动任务的两种方式,用法基本一致,主要体现在传参的不同上

到此这篇关于SpringBoot中实现启动任务的实现步骤的文章就介绍到这了,更多相关SpringBoot 启动任务内容搜索编程之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程之家!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐