2020年11月16日 星期一

[SpingBoot 1.5] 配置文件YAML 與 @ConfigurationProperties 搭配使用

 首先造一個 Person 類別

加入@Component使其能夠被注入 

並加入@ConfigurationProperties , 告知對應prefix的文字為person


類別屬性為以下, 並加入setter, getter和toString方法

private String lastname;
private Integer age;
private Boolean boss;
private Date birth;
private Map<String, Object> maps;
private List<Object> lists;
private Dog dog;

並在application.yaml中加入以下這段

person:
lastName: hello
age: 18
boss: false
birth: 2017/12/12
maps: {k1: v1,k2: 12}
lists:
- lisi
- zhaoliu
dog:
name: 小狗
age: 12

為了要使用@ConfigurationProperties, 我們需要在pom.xml檔案中的
depenedencies中加入以下這段

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

然後將整個spring重run 就可以使用
為了方便測試, 我們在test中進行
位置為以下


內容則為如下

@SpringBootTest
class SpringBoot02ConfigApplicationTests {

@Autowired
Person person;

@Test
void contextLoads() {
System.out.println(person);
}

}

我們run的結果則為
Person{lastname='hello', age=18, boss=false, birth=Tue Dec 12 00:00:00 CST 2017, 
maps={k1=v1, k2=12}, lists=[lisi, zhaoliu], dog=Dog{name='小狗', age=12}}
這樣就完成了~

另外如果不在yaml檔案中賦值, 也可以在application.properties檔案中賦值
長相為如下
person.lastname=張三
person.age=18
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=dog
person.dog.age=15

相關內容:
https://blog.csdn.net/yingxiake/article/details/51263071





沒有留言:

張貼留言

[leetcode] [KMP] KMP

ABCDABD... ABCDABF... 簡單的說, 傳統解兩字串匹配部分 可能會來個雙迴圈, 哀個比對, 當不匹配的時候, 會將下方列再後移1位 然後不匹配再後移 然而 如果像上放已經有4個屬於匹配的字串, 她就應該直接往後移四位來匹配, 而不是只移動1位 隱藏的思維是, 當...