Springboot的配置文件
application.properties 与 application.yaml
YAML语法的写法格式:
基本写法: k:(空格)v
注:空格不能省略、用空格来表示控制层级关系。并且属性和值的大小写格式都是十分敏感的。
举例更改端口号:
server:
port: 8081
具体的写法
-
值的写法
k: v 举例: age: 12 name: zhangsan
-
对象、Map(键值对)的写法
Person: name: wst age: 12 sex: 男
-
数组的写法
array: -蓝色 -绿色 -紫色
可以同时存在以上两个配置文件。
application.yaml
普通的key-value:name: wst
对象:Student:
name: wst
age: 3
行内写法: Student: {name: wst,age: 3}
数组:
pets:
-dog
-pig
或者行内写法 pets: [cat,dog]
application.properties
只能保存键值对
name=wst
Student.name=wst
Student.age=3
Springboot给属性赋值的几种方式
1、application.yaml方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yNtPk8VO-1580556959181)(C:\Users\201781~1\AppData\Local\Temp\1580547012092.png)]
主要实现代码:
import java.util.Map;
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private Integer age;
private Boolean happy;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
public Person() {
}
-
主要实现注解:
@ConfigurationProperties(prefix = "person")
运行结果
2、另外一种方式application.properties加载指定的配置文件
下面以wst.properties配置文件为例:
wst.properties:
name=123456
主要实现代码:
@Component
//@ConfigurationProperties(prefix = "person")
//加载指定的配置文件
@PropertySource(value = "classpath:wst.properties")
public class Person {
//SPEL表达式取出配置文件的值
@Value("${name}")
private String name;
private Integer age;
private Boolean happy;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
public Person() {
}
-
主要实现注解
//加载指定的配置文件 @PropertySource(value = "classpath:wst.properties")
运行结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O14oxEpi-1580556959182)(C:\Users\201781~1\AppData\Local\Temp\1580550618194.png)]
//加载指定的配置文件 @PropertySource(value = "classpath:wst.properties")
运行结果
参考资料:https://www.cnblogs.com/hellokuangshen/p/11259029.html