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

 更新时间:2020年09月10日 09:28:17   作者:Asurplus、  
这篇文章主要介绍了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 启动任务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中如何正确重写equals方法

    Java中如何正确重写equals方法

    Object类中equals方法比较的是两个对象的引用地址,只有对象的引用地址指向同一个地址时,才认为这两个地址是相等的,否则这两个对象就不相等
    2021-10-10
  • SpringBoot集成EasyExcel实现Excel导入的方法

    SpringBoot集成EasyExcel实现Excel导入的方法

    这篇文章主要介绍了SpringBoot集成EasyExcel实现Excel导入的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Java实现简单的socket通信教程

    Java实现简单的socket通信教程

    这篇文章主要介绍了Java实现简单的socket通信教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Java中自己如何实现log2(N)

    Java中自己如何实现log2(N)

    这篇文章主要介绍了Java中自己实现log2(N)的方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 如何使用IDEA开发Spark SQL程序(一文搞懂)

    如何使用IDEA开发Spark SQL程序(一文搞懂)

    Spark SQL 是一个用来处理结构化数据的spark组件。它提供了一个叫做DataFrames的可编程抽象数据模型,并且可被视为一个分布式的SQL查询引擎。这篇文章主要介绍了如何使用IDEA开发Spark SQL程序(一文搞懂),需要的朋友可以参考下
    2021-08-08
  • 使用IDEA直接连接MySQL数据库的方法

    使用IDEA直接连接MySQL数据库的方法

    这篇文章主要介绍了如何使用IDEA直接连接MySQL数据库,首先需要新建一个空项目,第一次连接 需要先下载驱动,文中给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • java实现发送邮件的示例代码

    java实现发送邮件的示例代码

    这篇文章主要介绍了java如何实现发送邮件,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 解决idea导入ssm项目启动tomcat报错404的问题

    解决idea导入ssm项目启动tomcat报错404的问题

    今天小编就为大家分享一篇解决idea导入ssm项目启动tomcat报错404的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 详解SpringMVC重定向传参数的实现

    详解SpringMVC重定向传参数的实现

    本篇文章主要介绍了详解SpringMVC重定向传参数的实现,我们可以使用重定向的方式,改变浏览器的地址栏,防止表单因为刷新重复提交。有兴趣的可以了解一下。
    2017-01-01
  • spring boot入门开始你的第一个应用

    spring boot入门开始你的第一个应用

    这篇文章主要介绍了spring boot入门开始你的第一个应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06

最新评论