天天看點

@ConfigurationProperties注解的使用與@Value的使用

  • 讀取的配置檔案

    application.yml

    :
    jianshu:
     id: futaosmile           

1. 使用@ConfigurationProperties注解注入

@RunWith(SpringRunner.class)
@SpringBootTest
@ConfigurationProperties(prefix = "jianshu")
public class SpringmvcdemoApplicationTests {

    private String id;

    @Test
    public void test10() {
        System.out.println(id);
    }
}           
  • 輸出

    null

    ,注入失敗
  • 原因:使用

    @ConfigurationProperties

    注解的方式注入為每個注入的字段添加setter方法
package com.futao.springmvcdemo;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
@ConfigurationProperties(prefix = "jianshu")
public class SpringmvcdemoApplicationTests {

    private String id;

    @Test
    public void test10() {
        System.out.println(id);
    }

    public void setId(String id) {
        this.id = id;
    }
}           
  • 輸出:

2. 使用@Value注解

package com.futao.springmvcdemo;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

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

    @Value("${jianshu.id}")
    private String id;

    @Test
    public void test10() {
        System.out.println(id);
    }

}           
  • 輸出:

OK

繼續閱讀