基本語法:
key: value;kv之間有空格
大小寫敏感
使用縮進表示層級關系
縮進不允許使用tab,只允許空格
縮進的空格數不重要,只要相同層級的元素左對齊即可
'#‘表示注釋
字符串無需加引號,如果要加,’ '(單引號)與" "(雙引號)表示字符串內容 會被 轉義/不轉義
普通引用
key : value
對象:鍵值對的集合map、hash、set、object
行內寫法: k: {k1:v1,k2:v2,k3:v3}
k:
k1: v1
k2: v2
k3: v3
數組:一組按次序排列的值。array、list、queue
行內寫法: k: [v1,v2,v3]
k:
- v1
- v2
- v3
參數引用
personZS:
name: ahangsan
age: 20
animal:
person: ${personZS}
獲取方式
1@Value
在被注入的參數上寫@Value("${key值}")
@Value("${name}")
private String name1;
數組形式
@Value("${arraylist[0]}")
private String arraylist;
2environment
注入一個environment的類(springboot自帶的)
然后用方法獲取
System.out.println(env.getProperty("name"));
System.out.println(env.getProperty("arraylist[0]"));
3@ConfigurationProperties 類從yml中直接獲取
package com.xzh.boot12.bean; import lombok.Data; import lombok.ToString; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; /** * @Author XuZhuHong * @CreateTime 2021/6/7 18:40 */ //下面的代碼由Lombok提供 //@Data 自動生成get,set方法 @Data //@ToString 自動生成tostring注解 @ToString //@AllArgsConstructor 自動生成構造方法(全部參) @AllArgsConstructor //@NoArgsConstructor 自動生成無參構造方法 @NoArgsConstructor //@EqualsAndHashCode 重寫HashCode方法 @EqualsAndHashCode //@ConfigurationProperties綁定配置文件key為person的數據 //用這個注解過后里面的數據有變量名和配置key相等時會自動注入 @ConfigurationProperties(prefix = "person") @Component//放到容器中的注解 public class Person { private String userName; private Boolean boss; private Date birth; private Integer age; private Pet pet; private String[] interests; private List<String> animal; private Map<String, Object> score; private Set<Double> salarys; private Map<String, List<Pet>> allPets; } /** 注意想要使用上面關於lombok的注解必須要在pom.xml中導入以下代碼: <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> */
# yaml表示以上對象
person:
userName: zhangsan
boss: false
birth: 2019/12/12 20:12:33
age: 18
pet:
name: tomcat
weight: 23.4
interests: [ 籃球,游泳 ]
animal:
- jerry
- mario
score:
english:
first: 30
second: 40
third: 50
math: [ 131,140,148 ]
chinese: { first: 128,second: 136 }
salarys: [ 3999,4999.98,5999.99 ]
allPets:
sick:
- { name: tom }
- { name: jerry,weight: 47 }
health: [ { name: mario,weight: 47 } ]
yaml提示器
<!--yaml編寫提示--> <!--配置處理器 就是解決在配置文件中沒有提示的問題--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--這句話的意思是 讓這個打包插件 不要把yaml的代碼提示放進去--> <configuration> <excludes> <exclude> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build>