赞
踩
SpringBoot在启动时,可支持文件名后缀格式为yml或properties的配置文件。两者只是编写格式有点差异性。
application.yml文件:有层级关系,当相同配置前缀较多时,可减少代码量
- server:
- port: 9000
-
- class:
- method:
- firstmethod: fnA
- secondmethod: fnB
- params:
- paramA: defaultA
- paramB: defaultB
application.properties文件:key=value配置,优点是配置清晰,可一眼看出具体配置的value
- server.port=9000
-
- class.method.firstmethod=fnA
- class.method.secondmethod=fnB
-
- class.params.paramA=defaultA
- class.params.paramB=defaultB
注:在yml或properties配置文件中,一定不能有Tab符号的空格,否则SpringBoot启动不了。
第一步:在pom.xml文件中引入SpringBoot的Jar,并导入Web开发的Jar,加入一个maven插件,并指定SpringApplication.run启动的mainClass入口
- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.oysept</groupId>
- <artifactId>second_springboot</artifactId>
- <version>1.0-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <!--SpringBoot Jar-->
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.3.0.RELEASE</version>
- </parent>
-
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- </properties>
-
- <dependencies>
- <!-- 支持web开发的 jar-->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- </dependencies>
-
- <build>
- <plugins>
- <!--maven插件, 将项目打包成Jar-->
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <configuration>
- <!--指定SpringBoot启动是的main方法入口-->
- <mainClass>com.oysept.ServerApplication</mainClass>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </project>
第二步:使用application.yml或application.properties文件,随意指定使用一种即可
第三步:创建一个SpringApplication.run运行入口
- package com.oysept;
-
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
-
- @SpringBootApplication
- public class ServerApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(ServerApplication.class, args);
- }
- }
第四步:创建一个Controller类,作为测试类
@RestController:此注解将类注册成一个控制层类
@RequestMapping:路由配置,即访问地址
@Value("${}"):指定加载的配置key
- package com.oysept.controller;
-
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- import java.time.LocalDateTime;
-
- @RestController
- public class TestController {
-
- @Value("${class.params.paramA}")
- private String paramA;
-
- @Value("${class.params.paramB}")
- private String paramB;
-
- // http://localhost:9000/test/config
- @RequestMapping(value="/test/config")
- public String config() {
- System.out.println("paramA: " + this.paramA);
- System.out.println("paramB: " + this.paramB);
- return "Time: "+ LocalDateTime.now() +", 外部配置参数: " + this.paramA + " :: " + this.paramB;
- }
- }
第五步:打包成Jar
打开cmd命令窗口,用cd命令切换到项目下,和pom.xml文件同层级,然后执行mvn install命令(如包mvn命令不存在,肯定是环境变量配置不正确,需检查一下maven的环境变量是否配置)
回车之后,打印如下,表示Jar打包成功
如果是用idea编辑器(idea编辑器本身提供cmd命令窗口),刷新一下项目,项目结构图如下:
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
- server:
- port: 9000
-
- class:
- method:
- firstmethod: fnA
- secondmethod: fnB
- params:
- paramA: applicationA
- paramB: applicationB
target文件夹,已把多余的文件先删除了,只留下有用的Jar和application.yml配置
执行java -jar second_springboot-1.0-SNAPSHOT.jar命令,打印效果图:
3、在target文件夹下,创建一个config文件夹,然后在config文件下创建一个application.yml文件,并修改部分配置参数,然后再启动Jar
- server:
- port: 9000
-
- class:
- method:
- firstmethod: fnA
- secondmethod: fnB
- params:
- paramA: applicationConfigA
- 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)。
识别二维码关注个人微信公众号
本章完结,待续,欢迎转载!
本文说明:该文章属于原创,如需转载,请标明文章转载来源!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。