SpringBoot--基础--02--配置属性

SpringBoot–基础–02–加载配置


代码位置

https://gitee.com/DanShenGuiZu/learnDemo/tree/mysql_mybaties_DB/springboot-learn/springboot-1


1、Profile(配置多环境的情况,读取哪个配置)

1.1、格式

application-{profile}.properties/yml

1.2、案例1–配置文件的方式

application-dev.yml
application-prod.yml

SpringBoot--基础--02--配置属性_第1张图片

SpringBoot--基础--02--配置属性_第2张图片

SpringBoot--基础--02--配置属性_第3张图片

  1. 加载的时候读取application.yml的配置,里面有设置激活哪个(dev,prod)的文件。
  2. 这里我们激活的是dev的配置文件,加载结果如下
    在这里插入图片描述

1.2、案例2–多文档块方式

spring:
  profiles:
    active: dev1
# 多文档标识
---
server:
  port: 8083
spring:
  profiles: dev1

# 多文档标识
---
server:
  port: 8085
spring:
  profiles: dev2

SpringBoot--基础--02--配置属性_第4张图片

1.3、激活指定profile

1.3.1、配置文件指定

1. spring.profiles.active=dev

1.3.2、命令行指定

  1. java -jar 项目名.jar --spring.profiles.active=dev

    --spring.profiles.active=dev2
    

    SpringBoot--基础--02--配置属性_第5张图片

  2. 虚拟机上配置

-Dspring.profiles.active=dev

SpringBoot--基础--02--配置属性_第6张图片

2、Spring Boot 配置优先级

以下是常用的 Spring Boot 配置形式及其加载顺序(优先级由高到低),所有形式的配置都会被加载,当存在相同配置内容时,高优先级的配置会覆盖低优先级的配置;存在不同的配置内容时,高优先级和低优先级的配置内容取并集,共同生效,形成互补配置。

  1. 命令行参数
    1. java -jar {Jar文件名} --{参数1}={参数值1} --{参数2}={参数值2}
    2. java -jar app.jar --server.port=8081 --server.servlet.context-path=/bcb
    
  2. 来自java:comp/env的JNDI属性
  3. Java 系统属性
    System.getProperties()
    
  4. 操作系统环境变量
  5. RandomValuePropertySource配置的random.*属性值
  6. 配置文件(YAML文件,Properties文件)
    java -jar 包名.jar  -spring.config.location=配置文件
    
  7. @Configuration 注解类上的 @PropertySource 指定的配置文件
  8. 通过SpringApplication.setDefaultProperties 指定的默认属性

3、配置文件

Spring Boot 启动时,会自动加载 JAR 包内部及 JAR 包所在目录指定位置的配置文件(Properties 文件、YAML 文件),下图中展示了 Spring Boot 自动加载的配置文件的位置及其加载顺序,同一位置下,Properties 文件优先级高于 YAML 文件。

SpringBoot--基础--02--配置属性_第7张图片

3.1、说明如下

  1. /myBoot:表示 JAR 包所在目录,目录名称自定义;
  2. /childDir:表示 JAR 包所在目录下 config目录的子目录,目录名自定义;
  3. JAR:表示 Spring Boot 项目打包生成的 JAR;
  4. 其余带有"/"标识的目录的目录名称均不能修改。
  5. 红色数字:表示该配置文件的优先级,数字越小优先级越高。

3.2、配置文件的优先级顺序,遵循以下规则

  1. 先加载 JAR 包外的配置文件,再加载 JAR 包内的配置文件;
  2. 先加载 config 目录内的配置文件,再加载 config 目录外的配置文件;
  3. 先加载 config 子目录下的配置文件,再加载 config 目录下的配置文件;
  4. 先加载 appliction-{profile}.properties/yml,再加载application.properties/yml;
  5. 先加载 .properties 文件,再加载 .yml 文件。

4、案例

SpringBoot--基础--02--配置属性_第8张图片

SpringBoot--基础--02--配置属性_第9张图片

你可能感兴趣的:(SpringBoot,spring,boot,java,spring)