一、配置参数引用
- 通过
@Value
注解获取 - 注解使用类由Spring管理,即类上需要添加
@Component
、@Service
、@RestController
等注解 - 静态变量需要通过set方法进行获取,注解添加在set方法上
- 变量类被new新建了实例,需要使用
@Autowired
public class VariateDto {
@Value("${normal_value_path}")
private String normalValue;
private static String staticValue;
@Value("${static_valud_patch}")
public void setStaticValue(String staticValue) {
this.staticValue = staticValue;
}
@Value("${variate}")
private String variate;
}
@Component
public class VariateBusi {
VariateDto errorVariate = new VariateDto ();
@Autowired
VariateDto variateDto;
}
二、使用随机数
- 配置文件中通过
${rondom}
配置来生成int、long、string随机数
random:
int: ${random.int}
long: ${random.long}
string: ${random.value}
ingNum: ${random.int(10)}
ingNum1: ${random.int[10,20]}
三、多环境配置
1、单一配置文件
server:
port: 8080
---
spring:
profiles: dev
server:
port: 8081
---
spring:
profiles: pro
server:
port: 8082
2、多配置文件
- 利用spring.profiles.active配置指向具体的配置文件,子配置文件命名方式为application-{profile}.yml
spring:
profiles:
active: dev
java -jar xxx.jar --spring.profiles.active=dev
3、加载顺序
- 命令行参数
- SPRING_APPLICATION_JSON中的属性;SPRING_APPLICATION_JSON是以JSON格式配置在系统环境变量中的内容;
- java:comp/env中的JNDI属性;
- Java的系统属性。可通过System.getProperties()获取的内容;
- 操作系统的环境变量;
- 通过
random.*
配置的随机属性; - 位于当前应用jar包之外,针对不同{profile}环境的配置文件内容;
- 位于当前应用jar包之内,针对不同{profile}环境的配置文件内容;
- 位于当前应用jar包之外的application.properties和YAML配置内容;
- 位于当前应用jar包之内的application.priperties和YAML配置内容;
- 在@Configuration注解修改的类中,通过@PropertySource注解定义的属性;
- 应用默认属性,使用SpringApplication.setDefaultProperties定义的内容。