一、配置加载现象
- 加载场景说明。
- 假设有一个特殊的场景的配置文件如下表,那么配置文件是如何生效,以及加载的顺序是怎么样的呢?有多个地方均配置了相同的参数,到底是哪一个参数项在应用中生效的呢?
配置文件 |
配置项 |
application.yaml |
xxx: yyy: zzz: from-application.yaml |
application-dev.yaml |
xxx: yyy: zzz: from-application-dev.yaml |
bootstrap.yaml |
xxx: yyy: zzz: from-bootstrap.yaml |
config-server |
xxx: yyy: zzz: from-config-order.yaml |
系统环境变量 |
XXX_YYY_ZZZ=from-system-environment |
jvm启动参数 |
-Dxxx.yyy.zzz=from-jvm-args |
若使用了配置中心,需增加spring-cloud配置中心配置。
二、示例代码演示
说明 |
版本 |
jdk |
1.8 |
spring-boot |
2.6.2 |
spring-cloud |
2021.0.0 |
1、建立一个配置中心 config-server ,先申请好 gitee ,方便演示配置中心从 git 上获取配置项。
(1) pom.xml如下:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.2</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.mixfate</groupId> <artifactId>config-server</artifactId> <version>0.0.1-SNAPSHOT</version> <name>config-server</name> <properties> <java.version>1.8</java.version> <spring-cloud.version>2021.0.0</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependenc