1. 程式人生 > >SpringBoot讀取配置的幾種方式

SpringBoot讀取配置的幾種方式

  Spring Boot使用了一個全域性的配置檔案application.properties或者application.yml,放在src/main/resources目錄下或者類路徑的/config下。Sping Boot的全域性配置檔案的作用是對一些預設配置的配置值進行修改

  新建一個springboot的專案,在application.properties中新增

demo.name=zhangsan

demo.mobile=0123456789

  @Value

   直接在要使用的地方通過註解@Value(value=”${config.name}”)就可以繫結到你想要的屬性上面

 例如:建立 DemoController,新增如下內容

@RestController
public class DemoController {

    @Value("${demo.name}")
    private String name;


    @Value("${demo.mobile}")
    private String mobile;

    @RequestMapping(value = "config1")
    public String config1(){
        return name+"/"+mobile;
    }
}

   

   @ConfigurationProperties

    有時候屬性太多了,一個個繫結到屬性欄位上太累,官方提倡繫結一個物件的bean,這裡我們建一個ConfigBean.java類,使用註解@ConfigurationProperties(prefix = “demo”)來指明

@Component
@ConfigurationProperties(prefix = "demo")
public class ConfigBean {

    private String name;

    private String mobile;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
}

   修改DemoController,新增

@Autowired
    ConfigBean configBean;

    @RequestMapping(value = "config2")
    public String config2(){
        return configBean.getName()+"/"+configBean.getMobile();
    }

   

   @PropertySource 

   自定義配置檔案位置,在resource下建立config資料夾,在config資料夾下床架demo.properties 並新增如下內容

cionfig.demo.name=cionfig.zhangsan

cionfig.demo.mobile=cionfig.0123456789

    建立ConfigDemoBean類   

@Component
@PropertySource("config/demo.properties")
@ConfigurationProperties(prefix = "cionfig.demo")
public class ConfigDemoBean {

    private String name;

    private String mobile;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
}

   修改DemoController   

@Autowired
    ConfigDemoBean configDemoBean;

    @RequestMapping(value = "configDemoBean")
    public String configDemo(){
        return configDemoBean.getName()+"/"+configDemoBean.getMobile();
    }

   

   注意!  

   @PropertySource不支援yml檔案讀取。