Spring Boot 全域性配置檔案
阿新 • • 發佈:2020-08-05
(一)、application.properties配置檔案
使用Spring Initializr方式構建Spring Boot專案時,會在resource目錄下自動生成。
配置檔案的具體使用詳細講解。
(1)、Spring Initializr方式構建名為chapter02的Spring Boot專案(專案的包結構為com.itheima)。在Dependencies依賴中選擇Web依賴。
(2)、為方便檢視application.properties配置檔案屬性配置的效果,在專案的com.itheima包下建立一個domain包。並在該下建立一兩個實體類Pet和Person。
專案的目錄結構如下圖所示。
實體類Pet.java 程式碼如下:
public class Pet { private String type; private String name; public String getType() { return type; } public void setType(String type) { this.type = type; } public String getName() { return name; } public void setName(String name) {Pet.javathis.name = name; } @Override public String toString() { return "Pet{" + "type='" + type + '\'' + ", name='" + name + '\'' + '}'; } }
實體類Person.java 程式碼如下:
@Component //將Person類作為Bean注入Spring容器 @ConfigurationProperties(prefix = "person") //Person.java經配置檔案中以Person開頭的屬性注入該類中 public class Person { private int id; //id private String name; //名稱 private List hobby; //愛好 private String[] family; //家庭成員 private Map map; private Pet pet; //寵物 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List getHobby() { return hobby; } public void setHobby(List hobby) { this.hobby = hobby; } public String[] getFamily() { return family; } public void setFamily(String[] family) { this.family = family; } public Map getMap() { return map; } public void setMap(Map map) { this.map = map; } public Pet getPet() { return pet; } public void setPet(Pet pet) { this.pet = pet; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", hobby=" + hobby + ", family=" + Arrays.toString(family) + ", map=" + map + ", pet=" + pet + '}'; } }
@ConfigurationProperties(prefix = "person") 註解的作用是將配置檔案中以person開頭的屬性值通過setter方法注入實體類對應屬性中;
@Component 註解的作用是將當前注入屬性值的Person類的物件作為Bean元件放到spring容器中,只有這樣才能被
@ConfigurationProperties註解賦值。
(3)、開啟resource目錄下的application.properties配置檔案,並在該檔案中編寫需要對Person類設定的配置屬性。
編寫程式碼如下:
#對實體類物件Person進行屬性配置 person.id=1 person.name=tom person.hobby=paly,read,sleep person.family=father,mother person.map.k1=v1 person.map.k2=v2 person.pet.type=dog person.pet.name=kity
在編寫配置檔案是,由於要配置的Person物件屬性是自定義的,Spring Boot無法自動識別。為方便配置在使用
@ConfigurationProperties註解進行配置檔案屬性值注入時,可在pom.xml檔案中新增Spring Boot提供的的配置處理器依賴。示例程式碼如下:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency>
再新增完上述配置依賴後,需重新執行專案啟動類或者“Ctrl+F9”組合鍵(即Bulid Project)重構當前Spring Boot專案,方可生效。
(4)、在測試類中引入Person實體類Bean並進行輸出測試。
測試類編寫檔案如下所示:
package com.itheima.chapter02; @SpringBootTest class Chapter02ApplicationTests { @Autowired private Person person; @Test public void contextLoads(){ System.out.println(person); } }
@Autowired註解將Person作為Bean注入Spring容器,然後在contextLoads()方法中輸出Person
執行contextLoads()方法,並檢視控制檯的輸出結果。