目录
3.1、新建自定义的配置文件test.properties(不能为YMAL文件)
3.2、读取外部配置文件的Java类-PropertySourceProperty.java
3.3、配置文件没有给变量赋值的在Value注解中定义默认值
4.1、建立多环境配置文件,命名为application-{dev}.yml
1、SpringBoot加载配置文件的值
1.1、application.yml
test:
check:
code: 123456
1.2、取配置文件值的类
1)在类上添加@Component
组件注解
2)在属性上添加@Value
注解用于读取配置文件的值并赋值给对应的属性
package com.example.mp.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* @description 读取配置文件的值并赋值给对应的属性
* @date 2021/07/28
* @author cm
*/
@Component
@Data
public class ValueProperty {
@Value("${test.check.code}")
private String check_code;
}
2、读取配置文件的值赋给JavaBean属性
2.1、赋值的JavaBean
在类上添加组件注解@Component
以及配置属性注解@ConfigurationProperties(prefix = "test")
用于读取配置文件,并指定前缀。
package com.example.mp.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @description 读取配置文件的值赋给JavaBean属性
* @date 2021/07/28
* @author cm
*/
@Data
@Component
@ConfigurationProperties(prefix = "test")
public class BeanProperty {
private String tel;
private boolean exist;
}
2.2、application.yml
test:
tel: 15812345678
exist: true
3、加载外部配置文件读取值
3.1、新建自定义的配置文件test.properties(不能为YMAL文件)
test.property=6666666
3.2、读取外部配置文件的Java类-PropertySourceProperty.java
为该类添加@Component
组件注解,以及加载读取外部配置文件的@PropertySource("classpath:test.properties")
注解,并为之指定类路径的配置文件名称;
并在对应的属性上面添加@Value
注解
package com.example.mp.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
/**
* @description 加载外部配置文件读取值
* @date 2021/07/28
* @author cm
*/
@Data
@Component
@PropertySource("classpath:test.properties")
public class PropertySourceProperty {
@Value("${test.property}")
private String property;
}
3.3、配置文件没有给变量赋值的在Value注解中定义默认值
给配置文件的KEY定义默认值的在KEY后面加英文冒号和默认值
@Value("${test.property:2222222}")
private String property;
4、多环境配置文件以及其加载使用
4.1、建立多环境配置文件,命名为application-{dev}.yml
4.2、在主配置文件中指定加载的文件
spring:
profiles:
active: dev
4.3、激活使用的配置文件会打印日志
4.4、可以通过命令行参数指定加载的配置文件
java -jar demo-0.0.1.jar --spring.profiles.active=dev
5、配置文件加载顺序
5.1、项目内部配置文件
spring boot 启动会扫描以下位置的application.properties或者application.yml文件作为Spring boot的默认配置文件
–file:./config/
–file:./
–classpath:/config/
–classpath:/
以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级配置内容会覆盖低优先级配置内容。
SpringBoot会从这四个位置全部加载主配置文件,如果高优先级中配置文件属性与低优先级配置文件不冲突的属性,则会共同存在—互补配置。
5.2、外部配置加载顺序
SpringBoot也可以从以下位置加载配置:优先级从高到低;高优先级的配置覆盖低优先级的配置,所有的配置会形成互补配置。
- 命令行参数
- 所有的配置都可以在命令行上进行指定;
- 多个配置用空格分开; –配置项=值 java -jar demo-0.0.1.jar --server.port=8087 --server.context-path=/abc
- 当前环境变量或者系统变量中的“SPRING_APPLICATION_JSON”属性
- ServletConfig 初始化参数
- ServletContext 初始化参数
- “java:comp/env”中的JNDI属性
- Java系统变量 “System.getProperties()”
- 操作系统环境变量
- Jar包外指定的 application-{profile}.properties
- Jar包内指定的 application-{profile}.properties
- Jar包外的 application.properties
- Jar包内的application.properties
- @PropertySource引入的配置
- 默认配置属性 “SpringApplication.setDefaultProperties”