如果您認(rèn)為對你有幫助,請點個贊等限!
概述
在WEB開發(fā)中,經(jīng)常需要讀取配置文件( 如.properties文件 )活逆。
使用spring boot精刷,讀取配置文件將變得非常方便。下面我們直接進(jìn)入實戰(zhàn)蔗候。
準(zhǔn)備工作
本示例需要使用之前創(chuàng)建的 HelloWorld項目怒允。
如果有開發(fā)環(huán)境,未創(chuàng)建HelloWorld項目锈遥,請參考 創(chuàng)建HelloWorld
如果沒有開發(fā)環(huán)境纫事,請直接參考 環(huán)境搭建及HelloWorld
下面進(jìn)入實戰(zhàn)環(huán)節(jié)。
實戰(zhàn)
準(zhǔn)備屬性配置文件
缺省情況下所灸,spring boot 使用 application.properties文件作為屬性配置文件丽惶。
我們先在該文件中添加兩個自定義的屬性,代碼如下:
# application.properties 這是默認(rèn)的屬性文件
# 自定義屬性
my.property1=value1
my.property2=value2
讀取屬性(方法1:使用@Value直接讀取屬性)
新建ConfigController.java中爬立,添加讀取屬性的代碼钾唬,如下所示:
//ConfigController.java
package com.example.helloworld;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ConfigController{
@Value("${my.property1}")
private String property1;
@Value("${my.property2}")
private String property2;
@RequestMapping("/get/property") //url
public String getProperty() { // 使用@Value注解,讀取屬性值
return "property1="+property1 + " property2=" +property2;
}
}
運行項目侠驯,訪問 http://localhost:8080/get/property
運行結(jié)果如下抡秆,可以看到屬性的值已經(jīng)讀取出來了。是不是感覺很爽吟策,原來可以這么簡單儒士。
property1=value1 property2=value2
讀取屬性(方法2:使用@Autowired注解,將配置文件讀取到Bean類)
新建一個類ConfigBean.java檩坚,該類定義了需要從屬性文件中獲取的屬定着撩,具體代碼如下:
//ConfigBean.java
package com.example.helloworld;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class ConfigBean { // 該類需要用 Component進(jìn)行注解
@Value("${my.property1}")
private String myproperty1; // 使用@Value注解诅福,讀取屬性值
@Value("${my.property2}")
private String myproperty2; // 使用@Value注解,讀取屬性值
public String getMyproperty1() {
return myproperty1;
}
public void setMyproperty1(String myproperty1) {
this.myproperty1 = myproperty1;
}
public String getMyproperty2() {
return myproperty2;
}
public void setMyproperty2(String myproperty2) {
this.myproperty2 = myproperty2;
}
}
在ConfigController.java中拖叙,添加讀取屬性的代碼氓润,如下所示:
//ConfigController.java
import org.springframework.beans.factory.annotation.Autowired;
//ConfigController.java
@Autowired
private ConfigBean config; //使用@Autowired注解,創(chuàng)建ConfigBean對象實例薯鳍,以讀取配置文件旺芽。
//注意:如果使用new是不會自動讀取屬性文件的,必須用@Autowired注解
@RequestMapping("/get/config") //url
public ConfigBean getConfig() { //直接返回ConfigBean 對象
return config;
}
運行項目辐啄,訪問 http://localhost:8080/get/config
運行結(jié)果如下,可以看到屬性的值已經(jīng)讀取出來了:
{"myproperty1":"value1","myproperty2":"value2"}
讀取屬性(方法3:使用Environment讀仍耸取)
在ConfigController.java中壶辜,添加讀取屬性的代碼,如下所示:
//ConfigController.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
@Autowired
private Environment environment; //使用@Autowired讀取配置文件到Environment 對象實例中
@RequestMapping("/get/env") //url
public String getEnv() {
String property1=environment.getProperty("my.property1"); //獲取屬性
String property2=environment.getProperty("my.property2"); //獲取屬性
return "property1="+property1 + " property2=" +property2;
}
運行項目担租,訪問 http://localhost:8080/get/env
運行結(jié)果如下
property1=value1 property2=value2
小結(jié):
可以看到使用Spring Boot讀取 配置文件是多么的簡單砸民。
這實際上是使用了約定優(yōu)于配置的思想(maven也是基于這一思想)。即缺省使用application.properties文件進(jìn)行屬性的配置奋救。
當(dāng)然spring boot 也是可以使用自定義的配置文件岭参。本文暫不講解,可以自行百度 ** @ConfigurationProperties注解**
參考資料
要深入理解spring boot的原理尝艘,建議復(fù)習(xí)下《JAVA編程語言 》中的如下內(nèi)容
- 反射
- 注解
如果對您有幫助演侯,請點贊!