Spring Boot 2

  • 时间:
  • 浏览:0
  • 来源:爱乐彩网站_爱乐彩下载_爱乐彩官网

意味着分析有大现象不能留言,意味着分析给我发邮件lloyd@examplecode.cn,期待没这麼 人一并学习与成长!

下面没这麼 人就来介绍如保指定执行的顺序。

意味着分析这名特性,它们是另六个 多理想地方去做有些初始化的工作,意味着分析写有些测试代码。

另两种场景是没这麼 人在服务器上这麼 执行某个操作,比如修正数据库用户的数据,而又找这麼 大约的执行入口,这麼 这过后它们理想的使用场景了。

过后没这麼 人说过使用Spring Boot的一大优势过后不能将工程直接打包成另六个 多jar包而不这麼 单独部署。打包成jar包不都都可不能能直接执行该jar包进行服务的启动,从前在执行jar包时没这麼 人就不能传入命令行参数,让CommandLineRunner接收参数。

没这麼 人不能在该类的里边直接加入@Order注解,过后Spring Boot就会按照没这麼 人注解指定的顺序从小到大的执行了。很简单,是都是?

下面没这麼 人就打成jar包来演示一下。

Spring Boot为没这麼 人提供了另六个 多注解"@Order",不能用来指定执行的顺序,比如没这麼 人工程里边有另六个 多CommandLineRunner:

Spring Boot 2 - 创建新工程

run()方式有个可变参数args,这名参数是用来接收命令行参数的,没这麼 人下面来加入参数来测试一下:

没这麼 人不能发现,通过run()方式的参数ApplicationArguments不能很方便地获取到命令行参数的值。

无论是CommandLineRunner还是ApplicationRunner,它们的目的都是在服务启动过后执行有些操作。意味着分析这麼 获取命令行参数时则建议使用ApplicationRunner。

CommandLineRunner和ApplicationRunner是Spring Boot所提供的接口,没这麼 人都另六个 多多run()方式。所有实现没这麼 人的Bean都是在Spring Boot服务启动过后自动地被调用。

接下来没这麼 人直接启动服务,查看日志如下,发现run()方式被正常地执行了:

不能从日志中看到没这麼 人也正常地获取到了参数。通过传递参数,在业务逻辑上没这麼 人不能根据不同的参数而执行不同的操作。

ApplicationRunner与CommandLineRunner做的事情是一样的,也是在服务启动过后其run()方式会被自动地调用,唯一不同的是ApplicationRunner会封装命令行参数,不能很方便地获取到命令行参数和参数值。

过后重启服务,观察日志,不能看到参数被正常地接收到了:

这名场景在服务器上有点常用。比如没这麼 人想执行某个操作,又我应该 对实物暴露,此时不能使用CommandLineRunner作为该操作的入口。

在阅读本篇文章过后,我应该 新建另六个 多工程,写有些关于本篇内容代码,从都是加深你对本文内容的理解,关于如保快速创建新工程,不能参考我的这篇博客:

在没这麼 人新建好工程后,为了简单没这麼 人直接使用Application类实现CommandLineRunner接口,这名类的注解@SpringBootApplication会为没这麼 人自动配置。

我的博客中有些关于Spring Boot的所有文章不能点击这里找到,欢迎关注!

执行结果:

本篇文章没这麼 人将探讨CommandLineRunner和ApplicationRunner的使用。

里边没这麼 人提到的过后另六个 多CommandLineRunner,意味着分析没这麼 人有多个CommandLineRunner为啥会么会办呢?为啥会么会控制它们执行的顺序呢?

很多意味着分析你的工程这麼 获取命令行参数话语,建议你使用ApplicationRunner。