当前位置:   article > 正文

第四章:SpringBoot2.3.0 打包Jar,加载yml或properties配置文件顺序_springboot哪里配置java打包之后的名称

springboot哪里配置java打包之后的名称

一)yml和properties配置文件简介

SpringBoot在启动时,可支持文件名后缀格式为yml或properties的配置文件。两者只是编写格式有点差异性。

application.yml文件:有层级关系,当相同配置前缀较多时,可减少代码量

  1. server:
  2. port: 9000
  3. class:
  4. method:
  5. firstmethod: fnA
  6. secondmethod: fnB
  7. params:
  8. paramA: defaultA
  9. paramB: defaultB

 

application.properties文件:key=value配置,优点是配置清晰,可一眼看出具体配置的value

  1. server.port=9000
  2. class.method.firstmethod=fnA
  3. class.method.secondmethod=fnB
  4. class.params.paramA=defaultA
  5. class.params.paramB=defaultB

注:在yml或properties配置文件中,一定不能有Tab符号的空格,否则SpringBoot启动不了。

 

二)SpringBoot Jar包准备工作

第一步:在pom.xml文件中引入SpringBoot的Jar,并导入Web开发的Jar,加入一个maven插件,并指定SpringApplication.run启动的mainClass入口

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>com.oysept</groupId>
  7. <artifactId>second_springboot</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <packaging>jar</packaging>
  10. <!--SpringBoot Jar-->
  11. <parent>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-parent</artifactId>
  14. <version>2.3.0.RELEASE</version>
  15. </parent>
  16. <properties>
  17. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18. </properties>
  19. <dependencies>
  20. <!-- 支持web开发的 jar-->
  21. <dependency>
  22. <groupId>org.springframework.boot</groupId>
  23. <artifactId>spring-boot-starter-web</artifactId>
  24. </dependency>
  25. </dependencies>
  26. <build>
  27. <plugins>
  28. <!--maven插件, 将项目打包成Jar-->
  29. <plugin>
  30. <groupId>org.springframework.boot</groupId>
  31. <artifactId>spring-boot-maven-plugin</artifactId>
  32. <configuration>
  33. <!--指定SpringBoot启动是的main方法入口-->
  34. <mainClass>com.oysept.ServerApplication</mainClass>
  35. </configuration>
  36. </plugin>
  37. </plugins>
  38. </build>
  39. </project>

 

第二步:使用application.yml或application.properties文件,随意指定使用一种即可

第三步:创建一个SpringApplication.run运行入口

  1. package com.oysept;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. @SpringBootApplication
  5. public class ServerApplication {
  6. public static void main(String[] args) {
  7. SpringApplication.run(ServerApplication.class, args);
  8. }
  9. }

 

第四步:创建一个Controller类,作为测试类

@RestController:此注解将类注册成一个控制层类

@RequestMapping:路由配置,即访问地址

@Value("${}"):指定加载的配置key

  1. package com.oysept.controller;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RestController;
  5. import java.time.LocalDateTime;
  6. @RestController
  7. public class TestController {
  8. @Value("${class.params.paramA}")
  9. private String paramA;
  10. @Value("${class.params.paramB}")
  11. private String paramB;
  12. // http://localhost:9000/test/config
  13. @RequestMapping(value="/test/config")
  14. public String config() {
  15. System.out.println("paramA: " + this.paramA);
  16. System.out.println("paramB: " + this.paramB);
  17. return "Time: "+ LocalDateTime.now() +", 外部配置参数: " + this.paramA + " :: " + this.paramB;
  18. }
  19. }

 

第五步:打包成Jar

打开cmd命令窗口,用cd命令切换到项目下,和pom.xml文件同层级,然后执行mvn install命令(如包mvn命令不存在,肯定是环境变量配置不正确,需检查一下maven的环境变量是否配置)

回车之后,打印如下,表示Jar打包成功

如果是用idea编辑器(idea编辑器本身提供cmd命令窗口),刷新一下项目,项目结构图如下:

 

三)测试yml配置文件加载顺序

1、先切换到target文件夹下,然后直接用java -jar second_springboot-1.0-SNAPSHOT.jar命令启动Jar,该方式加载的是项目下src/java/resources/application.yml配置文件

打开浏览器,在地址栏输入:http://localhost:9000/test/config

 

2、在target文件夹下,创建一个application.yml文件,并修改部分配置参数,然后再启动Jar

  1. server:
  2. port: 9000
  3. class:
  4. method:
  5. firstmethod: fnA
  6. secondmethod: fnB
  7. params:
  8. paramA: applicationA
  9. paramB: applicationB

target文件夹,已把多余的文件先删除了,只留下有用的Jar和application.yml配置

执行java -jar second_springboot-1.0-SNAPSHOT.jar命令,打印效果图:

 

3、在target文件夹下,创建一个config文件夹,然后在config文件下创建一个application.yml文件,并修改部分配置参数,然后再启动Jar

  1. server:
  2. port: 9000
  3. class:
  4. method:
  5. firstmethod: fnA
  6. secondmethod: fnB
  7. params:
  8. paramA: applicationConfigA
  9. paramB: applicationConfigB

执行java -jar second_springboot-1.0-SNAPSHOT.jar命令,打印效果图:

 

4、直接使用命令的方式启动Jar

命令:java -jar second_springboot-1.0-SNAPSHOT.jar --class.params.paramA=11111, --class.params.paramB=22222

打开浏览器,在地址栏输入:http://localhost:9000/test/config

 

四)总结

SpringBoot配置文件加载顺序从高到低如下:

1、启动命令指定参数,多个用逗号分割

2、Jar包同层级(一个/config当前目录的子目录),config/application.yml

3、Jar包同层级(当前目录),application.yml

4、Jar包内(类路径根),src/main/resources/application.yml

注:如果您不想将命令行属性添加到中Environment,则可以使用禁用它们SpringApplication.setAddCommandLineProperties(false)

 

识别二维码关注个人微信公众号

本章完结,待续,欢迎转载!
 
本文说明:该文章属于原创,如需转载,请标明文章转载来源!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/615351
推荐阅读
相关标签
  

闽ICP备14008679号