4.Springboot 之 自定義配置檔案及讀取配置檔案
阿新 • • 發佈:2019-01-05
讀取核心配置檔案
核心配置檔案是指在resources根目錄下的application.properties
或application.yml
配置檔案,讀取這兩個配置檔案的方法有兩種,都比較簡單。
核心配置檔案application.properties
內容如下:
server.port=9090
test.msg=Hello World Springboot!
- 使用方式(常用):
@RestController
public class WebController {
@Value("${test.msg}")
private String msg;
@RequestMapping (value = "index", method = RequestMethod.GET)
public String index() {
return "The Way 1 : " +msg;
}
}
注意:在的${}中包含的是核心配置檔案中的鍵名。在Controller類上加表示將此類中的所有檢視都以JSON方式顯示,類似於在檢視方法上加。
- 使用
Environment
方式
@RestController
public class WebController {
@Autowired
private Environment env;
@RequestMapping (value = "index2", method = RequestMethod.GET)
public String index2() {
return "The Way 2 : " + env.getProperty("test.msg");
}
}
注意:這種方式是依賴注入Evnironment
來完成,在建立的成員變數private
Environment env
上加上註解即可完成依賴注入,然後使用env.getProperty("鍵名")
即可讀取出對應的值。
讀取自定義配置檔案
為了不破壞核心檔案的原生態,但又需要有自定義的配置資訊存在,一般情況下會選擇自定義配置檔案來放這些自定義資訊,這裡在resources/config
my-web.properties
resources/config/my-web.properties
內容如下:
web.name=zslin
web.version=V 1.0
[email protected]
建立管理配置的實體類:
@ConfigurationProperties(locations = "classpath:config/my-web.properties", prefix = "web")
@Component
public class MyWebConfig {
private String name;
private String version;
private String author;
public String getAuthor() {
return author;
}
public String getName() {
return name;
}
public String getVersion() {
return version;
}
public void setAuthor(String author) {
this.author = author;
}
public void setName(String name) {
this.name = name;
}
public void setVersion(String version) {
this.version = version;
}
}
注意:
-
locations
:指定配置檔案的所在位置prefix
:指定配置檔案中鍵名稱的字首(我這裡配置檔案中所有鍵名都是以web.
開頭)
-
使用是讓該類能夠在其他地方被依賴使用,即使用註釋來建立例項。
建立測試Controller
@RestController
@RequestMapping(value = "config")
public class ConfigController {
@Autowired
private MyWebConfig myWebConfig;
@RequestMapping(value = "index", method = RequestMethod.GET)
public String index() {
return "webName: "+myWebConfig.getName()+", webVersion: "+
myWebConfig.getVersion()+", webAuthor: "+myWebConfig.getAuthor();
}
}
注意:由於在MyWebConfig類上加了註釋,所以可以直接在這裡使用來建立其例項物件。