SpringBoot讀取配置的幾種方式
阿新 • • 發佈:2019-02-02
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檔案讀取。