Spring Boot之配置文件值注入(@ConfigurationProperties)

前言:Spring Boot配置文件值的注入有兩種方式,分別是spring

  1. @ConfigurationProperties
  2. @Value

這裏咱們使用第一種app

首先咱們建立一個application.yml文件,裏面寫入這樣一組數據spring-boot

person:
    lastName: hello
    age: 18
    boss: false
    birth: 2017/12/12
    maps: {k1: v1,k2: 12}
    lists:
      - lisi
      - zhaoliu
    dog:
      name: 小狗
      age: 12

以後咱們建立一個JavaBean測試

/**
 * 將配置文件中配置的每個屬性的值,映射到這個組件中
 * @ConfigurationProperties:告訴SpringBoot將本類中的全部屬性和配置文件中相關的配置進行綁定;
 *      prefix = "person":配置文件中哪一個下面的全部屬性進行一一映射
 *
 * 只有這個組件是容器中的組件,才能容器提供的@ConfigurationProperties功能;
 *
 */
@Component
@ConfigurationProperties(prefix = "person")
public class Person {

    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;

    private Map<String, Object> maps;
    private List<Object> lists;
    private Dog dog;

}

咱們須要在pom文件中導入這段代碼,這樣當咱們寫配置文件的時候會根據JavaBean來提示spa

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

在application入口測試類中進行測試,看能不能將配置文件的值注入到JavaBean中code

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBoot01ConfigApplicationTests {

    @Autowired
    Person person;
    @Test
    public void contextLoads() {
        System.out.println(person);
    }

}

Person{lastName='zhangsan', 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}}blog

成功將數據注入進去,以上就是Spring Boot的配置文件值注入的所有內容it

提示:將配置文件值注入到JavaBean中必定要加@Component註解io

相關文章
相關標籤/搜索