1、基本語法
k:(空格)v
- 表示一對鍵值對(空格必須有)
- 以空格的縮進來控制層級關系;只要是左對齊的一列數據,都是同一個層級的
- 屬性和值是大小寫敏感的
server: port: 8081 path: /hello
2、值的寫法
2.1字面量:普通的值(數字,字符串,布爾)
k: v:字面直接來寫;
2.2字符串默認不用加上單引號或者雙引號;
“”:雙引號;不會轉義字符串里面的特殊字符;特殊字符會作為本身想表示的意思
name: “mingzi01 \n mingzi02”
輸出;mingzi01 換行 mingzi02
”:單引號;會轉義特殊字符,特殊字符最終只是一個普通的字符串數據
name: ‘mingzi01 \n mingzi02’
輸出;mingzi01 \n mingzi02
2.3對象、Map(屬性和值):
分行寫法:
friends: lastName: zhangsan age: 20
行內寫法:
friends: {lastName: zhangsan,age: 18}
2.4數組(List、Set):
用 - 值表示數組中的一個元素
pets: - cat - dog - pig
行內寫法
pets: [cat,dog,pig]
3、配置文件值注入
配置文件
config-attributes: value: 345 #對應單個值 valueArray: 1,2,3,4,5,6,7,8,9 #對應數組 valueList: #對應list - 13579 - 246810 valueMap: #對應map name: xiaoming age: 20 sex: female valueMapList: #對應list<map> - name: aaa age: 21 - name: bbb age: 31
javaBean:
@ConfigurationProperties(prefix = "config-attributes") @ToString public class Config { private String value; private String[] valueArray; private List<String> valueList; private HashMap<String, String> valueMap; private List<Map<String, String>> valueMapList; }
主類中添加注解@ConfigurationProperties
@SpringBootApplication @ConfigurationProperties public class Configtest1Application { public static void main(String[] args) { SpringApplication.run(Configtest1Application.class, args); } }
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
1.直接取值配置參數
定義
stu: name: mcx age: 25
取值
@Value("${stu.name}") private String name;
2.將yml配置賦給實體
stu: name:mcx age: 25 number: 9923
@Component @ConfigurationProperties(prefix = "stu") public class UserBean{ private String name; private int age; private int number; }
3.多環境配置文件
application.yml
spring: profiles: active: dev (指定讀取第一個配置文件)
application-dev.yml:
server: prot: 8080
application-test.yml:
server: prot: 8081
application-prod.yml:
server: prot: 8082