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





沒有留言:

張貼留言

2026半年度目標

 1 每個月看看能不能都做專案, 一年12專案 2 刷題每周4題 3 跑個人scrum, 並組讀書會 4規律讀英文ex每天早上8:30-9:30 5規律運動7:35-8:30 6減肥97->85 這是今年年初的目標, 有刷一點題, 但是差不多三月初AI大爆發, 不得不開始接...