SpringBoot 配置文件
SpringBoot配置文件类型和作用:
- SpringBoot是基于约定的,很多配置都有默认值,如果想要修改默认值的话,可以使用application.properties、application.yml(application.yaml)进行配置覆盖。
- SpringBoot默认从Resources目录下加载application.properties、application.yml(application.yaml)文件。
1 、application.properties
- application.properties是键值对类型的文件,之前一直写的是这个。
例:name=zhangsan
2、YML配置文件
- YML文件格式是YAML编写的文件格式,是一种直观的能被电脑识别的数据序列化格式。
例:name:zhangsan
application.properties:
# 服务器的端口号
server.port=8081
#配置web应用的名称
server.servlet.context-path=/demo
application.yml:
#普通数据
name: zhangsan
#对象的配置
person:
name: zhangsan
age: 18
addr: beijing
#行内对象配置
person2: {name: zhangsan,age: 12,addr: beijing}
#配置数据、集合(普通字符串)
city:
- beijing
- tianjin
- chongqing
- shanghai
city2: [beijing,tianjin,shanghai,shanghai]
#配置数据、集合(对象数据)
student:
- name: tom
age: 18
addr: lucy
- name: luck
age: 15
addr: shanghai
student2: [{name: tom,age: 18,addr: lucy},{name: luck,age: 15,addr: shanghai}]
#Map配置
map:
key1: value1
key2: value2
通过@vslue映射数据:
@Controller
public class Quick2Controller {
@Value("${name}")
private String name;
@Value("${person.addr}")
private String addr;
@ResponseBody
@RequestMapping("/quick2")
public String quick2(){
//获得配置文件的信息
return "name:"+name+",addr:"+addr;
}
}
执行结果:http://localhost:8081/demo/quick2
通过@ConfigurationProperties映射数据(上一篇文章自动配置原理的时候提到过这个注解)
@Controller
@ConfigurationProperties(prefix = "person")
public class Quick3Controller {
private String name;
private String addr;
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getAddr() {return addr; }
public void setAddr(String addr) {this.addr = addr;}
@ResponseBody
@RequestMapping("/quick3")
public String quick2(){
//获得配置文件的信息
return "name:"+name+",addr:"+addr;
}
}
执行结果:http://localhost:8081/demo/quick3
此外pom.xml中需要配置一下:@ConfigurationProperties的配置器
- 好处:配置yml文件会给出对应的提示,alt+/会提示你有的字段(字段需要些get、set方法)
- 不配置也可以正常使用