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





沒有留言:

張貼留言

AI 時代的軟體工程

  AI 時代的軟體工程:從「代碼寫手」到「系統指揮官」的轉型之路 2026 年,軟體工程正經歷自編譯器發明以來最大的範式轉移。AI 不再只是 IDE 側邊欄的輔助工具,而是進化為具備自主性的 Agent(代理人) ,這場變革正重新定義「工程師」的核心價值。 一、 現狀:AI 普...