2021-09-01
springboot配置
#
配置加载顺序
#
- 命令行传入的参数。
- SPRING_APPLICATION_JSON中的属性,是以JSON格式配置在系统环境变量中的内容。
- java:comp/env中的JNDI属性。
- java的系统属性,可以通过System.getProperties()获得的内容。
- 操作系统的环境变量。
- 通过random.*配置的随机属性。
- **位于当前jar包之外,针对于特定的环境的而指定的配置文件。**如application-prod.yml。
- 位于当前jar包内,针对于特定环境的而指定配置文件。
- 位于当前jar包外的application.properties和yml文件。
- 位于当前jar包内的application.properties和yml文件。
- 在@Configuration注解修饰的类中,通过@PropertySource注解定义的属性。
- 应用默认属性,使用SpringAppication.setDefaultProperties定义的内容。
注入到类
#
- resources/properties/person.properties
person.name=xiaoxiang
person.age=21
person.sex=1
person.weight=67
person.height=177
- java/space/xiaoxiang/properties/Person
@Component
@PropertySource(value = "classpath:properties/person.properties",ignoreResourceNotFound = false)
@ConfigurationProperties(prefix = "person")
@Data //必须要有setter方法,否则无法注入
public class Person {
private String name;
private int age;
private int sex;
private double weight;
private double height;
private String description;
}
- controller中注入
@Autowired
private Person person;
注入某个字段
#
- application.yml
sbl:
hostname: xiaoxiang.space
- controller
@RestController
public class IndexController {
//注入
@Value("${sbl.hostname}")
private String sblHostname;
//...
}
参数引用
#
- 在application.yml中的各个参数之间,可以通过placeholder的方式进行引用。
sbl:
hostname: ${hostname}
hostname: xiaoxiang.space
使用随机数
#
#随机字符串
value1: ${random.value}
#随机int
value2: ${random.int}
#随机long
value3: ${random.long}
#10以内的随机数
value4: ${random.int(10)}
#10-20的随机数
value5: ${random.int[10,20]}
参考链接:
Spring Boot 2.x基础教程:配置文件详解 | 程序猿DD