弹簧引导命令行启动的方式

  

在使用弹簧引导构建应用启动时,我们在工作中都是通过命令行来启动应用,有时候会需要一些特定的参数以在应用启动时,做一些初始化的操作。

  

弹簧引导提供了CommandLineRunner和ApplicationRunner这两个接口供用户使用。

  

<强> 1。CommandLineRunner
  

  

1.1声明:
  

        @FunctionalInterface   公共接口CommandLineRunner {/* *   *回调用于运行bean。   * @param args参数传入的主要方法   * @throws异常>   包com.example.consoleapplication;      进口org.springframework.boot.CommandLineRunner;   进口org.springframework.stereotype.Component;      @ component   公共类TestRunner实现CommandLineRunner {      @Override   公共空间运行(字符串…args) {//做某事…   (字符串参数:args) {   System.out.println (arg);   }   system . out。打印(“测试命令杀手”);   }   }      之前      

1.3运行结果
  

  

运行:<代码> java jar构建/libs/consoleapplication-0.0.1-SNAPSHOT。jar -sdfsaf sdfas,
  

  

结果如下:

  
  

2019-03-16 17:31:56.544 信息18679 - - - - - - (,,,,,,,,,主要]c.e.consoleapplication.DemoApplication ,,:不活跃的概要集,回落默认概要文件:默认
  2019-03-16 17:31:57.195 信息18679 - - - - - - (,,,,,,,,,主要]c.e.consoleapplication.DemoApplication ,,:开始DemoApplication 16.172秒(16.65 JVM运行)
  -sdfsaf
  sdfas
  测试命令运动员%
  

     

<强> 2。ApplicationRunner
  

  

2.1声明      /* *   *接口用来表明一个bean应该& lt; em> run当它是包含在   *一个{@link SpringApplication}。可以定义多个{@link ApplicationRunner} bean   *在同一个应用程序上下文,可以下令使用{@link下令}   *接口或{@link秩序@Order}注释。   *   * @author菲利普·韦伯   * 1.3.0 @since版本   * @see CommandLineRunner   */   @FunctionalInterface   公共接口ApplicationRunner {/* *   *回调用于运行bean。   * @param args参数传入应用程序   * @throws异常>   包com.example.consoleapplication;      进口org.springframework.boot.ApplicationRunner;   进口org.springframework.stereotype.Component;   进口org.springframework.boot.ApplicationArguments;      @ component   公共类TestApplicationRunner实现ApplicationRunner {      @Override   公共空间运行(ApplicationArguments args){抛出异常//做某事…   system . out。println(选项参数名称+ args.getOptionNames ());   system . out。println(“不选择”+ + args.getNonOptionArgs ());   }   }      之前      

2.3运行结果
  

  

运行命令<代码> java jar构建/libs/consoleapplication-0.0.1-SNAPSHOT。jar -non1 non2——选项=1>   

  

2019-03-16 18:08:08.528 信息19778 - - - - - - (,,,,,,,,,主要]c.e.consoleapplication.DemoApplication ,,:不活跃的概要集,回落默认概要文件:默认
  2019-03-16 18:08:09.166 信息19778 - - - - - - (,,,,,,,,,主要]c.e.consoleapplication.DemoApplication ,,:开始DemoApplication 16.059秒(16.56 JVM运行)
  测试
  选择参数名称[选项]
  非选项+ [-non1 non2] -non1
  non2
  ——选项=1
  测试%
  

     

可以看的到,可选参数名有选项,不选参数有-non1和non2

  

<强> 3。小结
  

  

CommandLineRunner和ApplicationRunner都能实现命令行应用启动时根据参数获取我们需要的值,做特殊的逻辑。但两者有所不同,推荐使用ApplicationRunner的可选参数,方便扩展。

  

<强> 4。参考文档
  

  

https://docs.spring.io/spring-boot/docs/2.0.5.RELEASE/reference/htmlsingle/boot-features-web-environment   

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

弹簧引导命令行启动的方式