SpringBoot2核心功能(五)原理解析(Profile功能、外部化配置)

目录

一、Profile功能

1.1 application-profile功能

1.2 @Profile条件装配功能

1.3 profile分组

二、外部化配置

2.1 外部配置源

2.2 配置文件查找位置

2.3 配置文件加载顺序:

 


 

 

一、Profile功能

为了方便多环境适配,springboot简化了profile功能。

 

 

1.1 application-profile功能

 

1. 默认配置文件  application.yaml;任何时候都会加载

2. 指定环境配置文件  application-{env}.yaml

3. 激活指定环境(加载时,默认配置文件和环境配置文件都会被加载,优先环境配置文件。命令行可以修改配置文件中的任意配置,命令行优先

方式一:配置文件激活

方式二:命令行激活

java -jar xxx.jar --spring.profiles.active=prod  --person.name=haha

上面的例子是使用prod环境的配置文件,且里面的person.name的值改为haha

4. 默认配置与环境配置同时生效

5. 同名配置项,profile配置优先

 

 

1.2 @Profile条件装配功能

@Configuration(proxyBeanMethods = false)
@Profile("production") // 配置使用production环境的配置文件内容
public class ProductionConfiguration {

    // ...

}

 

 

1.3 profile分组

https://www.cnblogs.com/didispace/p/14166388.html

 

 

 

 

二、外部化配置

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config

 

 

2.1 外部配置源

常用:Java属性文件YAML文件环境变量命令行参数

 

2.2 配置文件查找位置

下面几个目录都会被视为存储配置文件的位置

  • (1) classpath 根路径
  • (2) classpath 根路径下config目录
  • (3) jar包当前目录
  • (4) jar包当前目录的config目录
  • (5) /config子目录的直接子目录

 

2.3 配置文件加载顺序:

  1. 当前jar包内部的application.properties和application.yml
  2. 当前jar包内部的application-{profile}.properties 和 application-{profile}.yml
  3. 引用的外部jar包的application.properties和application.yml
  4. 引用的外部jar包的application-{profile}.properties 和 application-{profile}.yml

 

 

 

 

 


版权声明:本文为qq_29996285原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。