配置文件
Spring Boot使用一个全局的配置文件,配置文件的名称是固定的:
application.properties
application.yml
配置文件的作用,修改Spring Boot自动配置的默认值,Spring Boot在底层都给我们自动配置好。
标记语言:
以前的配置文件,都是以“xxx.xml”文件;
YAML:以数据为中心,比json.xml更适合用作配置文件。
YAML实例:
server: port: 8080
YAML语法:
1、基本语法
K:(空格)V:表示一对键值对(空格必须有)
以空格的缩进来控制层级关系,只要左对齐的一列数据,都是同一层级的
注:属性和值也是大小写敏感
2、值得写法
字面量: 普通的值(数字、字符串、布尔)
k: v 字面值直接写
字符串不用加上单引号或双引号
“”:双引号,不会转译特殊字符
‘’:单引号,会转译特殊字符,以普通字符串输出
对象、Map:属性和值(键值对)
k: v
值还是k: v值的方式
person: lastName: zhangsan age: 20 boss: false
数组(List、Set):
用- 表示数组中的一个元素
lists:
- lisi
- zhaoliu
行内写法:lists: [lisi,zhaoliu]
配置文件值注入
实例:
Person.java实体类
package com.gaofz.springboot.bean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
@Override
public String toString() {
return "Person{" +
"lastName='" + lastName + '\'' +
", age=" + age +
", boss=" + boss +
", birth=" + birth +
", maps=" + maps +
", lists=" + lists +
", dog=" + dog +
'}';
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Boolean getBoss() {
return boss;
}
public void setBoss(Boolean boss) {
this.boss = boss;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
public Map<String, Object> getMaps() {
return maps;
}
public void setMaps(Map<String, Object> maps) {
this.maps = maps;
}
public List<Object> getLists() {
return lists;
}
public void setLists(List<Object> lists) {
this.lists = lists;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
}
application.yml
server:
port: 8080
person:
lastName: zhangsan
age: 20
boss: false
birth: 2019/02/14
maps: {k1: v1,k2: v2}
lists:
- lisi
- zhaoliu
dog:
name: gou
age: 2
<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
注:
@Value和@ConfigurationProperties(prefix = "person")区别
| @ConfigurationProperties | @Value | |
| 功能 | 批量注入配置文件中的属性 | 一个一个指定 |
| 松散绑定(松散语法) | 支持 | 不支持 |
| SqEL | 不支持 | 支持 |
| JSP303数据校验 | 支持 | 不支持 |
| 复杂类型封装 | 支持 | 不支持 |
来源:https://www.cnblogs.com/gaofz/p/10384762.html