Spring Boot 學習(一)properties和yml 配置檔案的配置
阿新 • • 發佈:2021-06-28
properties
通過對pojo類進行@Component放入容器中,
之後通過@ConfigurationProperties(prefix = "person") 進行容器字首繫結,字首為person
package spring.main.spring.Bean; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component; import java.util.List; import java.util.Map; import java.util.Set; @ToString @Data @NoArgsConstructor @AllArgsConstructor @Component @ConfigurationProperties(prefix = "person") //配置檔案進行繫結,以person開頭 public class Person { private String name;private Integer age; private String[] hobit; private Car car; private List<String> animal; private Map<String,Object> score; private Set<Double> salary; private Map<String,List<Car>> allCar; }
yml
yml中寫值需要 key: value (鍵+冒號+空格+值)
person: name: 張三 age:18 # hobit: [123,456,789] #陣列表示法 hobit: - 123 - 456 - 789 # 採用陣列的寫法或 - value的寫法 animal: - 自行車 - 豆腐乾 - 繞太陽 # score: # English: 90 # Math: 80 score: {English: 90,Math: 80} #物件表示法 salary: - 9999 - 8888 car: brand: YYY price: 123456 # car是person裡的屬性,car本身又是屬於一個類,所以把類屬性寫裡面 allCar: bads: - {brand: RRR,price: 55555} #數組裡面有一個物件 - brand: EEE price: 666666 # 兩種寫法 goods: - {brand: ppp,price: 55555}
顯示:
@Autowired Person person; @RequestMapping("/person") public Person person() { return person; }
person.name = zs
#通過properties進行配置資訊,當yml和properties同時配置時,預設有效原則顯示properties
補充(一)
在yml中,如果對value進行雙引號引起來,那麼特殊字元會進行轉義,例如換行符 \n會顯示換行符
沒有引號時和單引號時 會保留原本的\n不會進行轉義
補充(二)yml中新增提示資訊
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
再加上,使打包成jar使不會匯入這個提示的功能,減少jvm的載入負重
<configuration> <excludes> <exclude> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configurationprocessor</artifactId> </exclude> </excludes> </configuration>