1. 程式人生 > 實用技巧 >Spring Boot 全域性配置檔案

Spring Boot 全域性配置檔案

(一)、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) {
        
this.name = name; } @Override public String toString() { return "Pet{" + "type='" + type + '\'' + ", name='" + name + '\'' + '}'; } }
Pet.java

實體類Person.java 程式碼如下:

@Component    //將Person類作為Bean注入Spring容器
@ConfigurationProperties(prefix = "person")   //
經配置檔案中以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 + '}'; } }
Person.java
@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()方法,並檢視控制檯的輸出結果。