1
、yaml
配置文件与properties
配置文件
在springboot中提供了yaml配置文件,官网上也是建议使用yaml的使用,用法是属性:空格属性值
properties用法与spring中还是一样是key=value
,一起使用时properties优先于yaml
例
:
a
.yaml
server:
port: 8080
b
.properties
server.port=8080
person.name = chen
person.sex = man
person.age = 12
2
、配置文件上配置实体类的属性值
(1)application.yaml
person:
age: 12
name: chsnsh
sex: girl
(2)实体类
这里使用到的注解:
a:@ConfigurationProperties(perfix:"XXX")
:将配置文件中的全部属性值自动装配至实体类中
b:@Value
:这个是将单个属性注入,所以它是使用也就是将注解放置在属性上方,可以注入配置文件的属性值@Value(“${XXX.xxx}”)
,也可以以表达式形式@Value(“#{1+2}”)
c、@Email
:指定属性格式为邮箱格式,使用的时候需要与@Validated
一起使用
/@ConfigurationProperties(value = "person")//将配置文件全部数据导入
@Component
@Validated
public class Person {
@Value("${person.name}")//配置文件单个属性导入,当使用@value的时候,再生成constructor时,会没有该属性
private String name;
private String sex;
@Value("#{1+2}")//可以写成表达式形式
private String age;
@Email //配置指定邮箱格式,需要与@Validated一起使用
private String email;
public Person() {
}
public Person(String name, String sex, String age, @Email String email) {
this.name = name;
this.sex = sex;
this.age = age;
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", age='" + age + '\'' +
", email='" + email + '\'' +
'}';
}
}
3
、配置文件存放位置的优先级
配置文件可以存在的位置有很多,在springboot中有特定的文件夹来存放config
,不管是在项目根目录中存放,还是resources中存放,若加上config文件夹后存在,执行都会优先使用config中的配置文件
,而根目录的优先级是高于resources目录的
4
、配置多环境
application.yaml配置文件
#指定环境,当server.port与指定环境一起使用时,优先使用指定环境
server:
port: 8084
spring:
profiles:
active: test