SpringBoot之經過yaml綁定注入數據

依賴包:java

        <!--配置文件註解提示包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

 

JavaBean:(此處使用lombok,可省略setter、getter等方法)spring

 1 package org.springboot.model;
 2 
 3 import lombok.Data;
 4 import org.springframework.beans.factory.annotation.Value;
 5 import org.springframework.boot.context.properties.ConfigurationProperties;
 6 import org.springframework.stereotype.Component;
 7 
 8 import java.util.Date;
 9 import java.util.Map;
10 
11 /**
12  * @Description: 經過yaml綁定,注入數據的模型
13  **/
14 
15 @Data
16 @Component
17 @ConfigurationProperties(prefix = "teather")
18 public class Teather {
19     @Value("小紅") //單個賦值,優先級低
20     private String name;
21 //    @Value("${teather.age}")  // 使用SpringEl讀取配置文件中的值並注入
22     private String age;
23     private Date birthday;
24     private Boolean gender;
25     private String[] hobbies; //集合處理方式和數組相同
26     // {省:江蘇,市:南京}
27     private Map<String, Object> location;
28 
29 }

 

application.yml數組

#  經過yaml綁定,注入數據
teather:
  name: Cate
  age: 29
  birthday: 1989/01/16
  gender: true
  hobbies: [唱歌,跳舞]
  location: {Province: "江蘇",City: "南京"}

已縮進來區分同級,而且冒號後必須有空格。 springboot

 

測試代碼:app

package org.springboot;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springboot.model.Teather;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
    @Autowired
    Teather teather;


    //經過yaml綁定,注入數據
    @Test
    public void testTeather() {
        System.out.println(teather);
    }


}

 

執行結果spring-boot

Teather(name=Cate, age=29, birthday=Mon Jan 16 00:00:00 CST 1989, gender=true, hobbies=[唱歌, 跳舞], location={Province=江蘇, City=南京})

 

此處綁定注入類型分爲批量注入和單個注入,批量注入的優先級較高,兩種方式的比較以下圖: 測試

相關文章
相關標籤/搜索