maven的结构下,配置文件都写在resources目录下。
在boot中对应的配置文件是application.properties。
1、SpringBoot的三种属性配置方式:
- application.properties(传统格式/默认格式)
- application.yml(主流格式)
- application.yaml
SpringBoot配置文件加载顺序:
application.properties > application.yml > application.yaml
注意:不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留
YAML(YAML Ain't Markup Language),一种数据序列化格式 。
语法核心规则:数据前面要加空格与冒号隔开
数组书写格式
subject:
- Java
- 前端
- 大数据
enterprise:
name: itcast
age: 16
subject:
- Java
- 前端
- 大数据
likes: [王者荣耀,刺激战场] #数组书写缩略格式
users: #对象数组格式一
- name: Tom
age: 4
- name: Jerry
age: 5
users: #对象数组格式二
-
name: Tom
age: 4
-
name: Jerry
age: 5
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ] #对象数组缩略格式
2、SpringBoot读取数据
- 读取单一数据:
-
使用@Value可以读取单个数据
-
属性名引用方式:${一级属性名.二级属性名……}
//yml配置文件
country: china
user1:
name: satoppi
users:
- name: satoppi
age: 17
- name: kappei
age: 17
likes:
- game
- music
- sleep
@Value("${country}")
private String country1;
@Value("${user1.name}")
private String name1;
@Value("${likes[1]}")
private String likes1;
@Value("${users[1].age}")
private String age1;
- 读取全部数据:
-
使用Environment对象封装全部配置信息
-
使用@Autowired自动装配数据到Environment对象中
//使用自动装配将所有的数据封装到一个对象Environment中
@Autowired
private Environment env;
- 读取对象数据 (主流)
创建类,用于封装下面的数据,由Spring帮我们去加载数据到对象中,一定要告诉Spring加载的这组信息,使用的时候从Spring中直接获取信息使用。
datasource:
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost/springboot_db
username: root
password: 123abc
1)定义数据模型封装yml文件中对应的数据
2)定义为Spring管控的bean(加上@Component)
3)指定加载的数据(加上@ConfigurationProperties(prefix = "datasource")),prefix可省略不写
@Component
@ConfigurationProperties(prefix = "datasource")
public class MyDataSource {
private String driver;
private String url;
private String username;
private String password;
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "MyDataSource{" +
"driver='" + driver + '\'' +
", url='" + url + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
3、SpringBoot引用数据:
-
在配置文件中可以使用${属性名}方式引用属性值
-
如果属性中出现特殊字符,可以使用双引号包裹起来作为字符解析
baseDir: /usr/local/fire
center:
dataDir: ${baseDir}/data
tmpDir: ${baseDir}/tmp
logDir: ${baseDir}/log
msgDir: ${baseDir}/msgDir