spring boot 從零開始入門3: 讀取屬性配置文件

如果您認(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)容

  • 反射
  • 注解

如果對您有幫助演侯,請點贊!

下一篇 spring boot 從零開始入門4: 數(shù)據(jù)庫之Hibernate集成

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末背亥,一起剝皮案震驚了整個濱河市秒际,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌狡汉,老刑警劉巖娄徊,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異盾戴,居然都是意外死亡寄锐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門尖啡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來橄仆,“玉大人,你說我怎么就攤上這事可婶⊙伛” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵矛渴,是天一觀的道長椎扬。 經(jīng)常有香客問我惫搏,道長,這世上最難降的妖魔是什么蚕涤? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任筐赔,我火速辦了婚禮,結(jié)果婚禮上揖铜,老公的妹妹穿的比我還像新娘茴丰。我一直安慰自己,他們只是感情好天吓,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布贿肩。 她就那樣靜靜地躺著,像睡著了一般龄寞。 火紅的嫁衣襯著肌膚如雪汰规。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天物邑,我揣著相機與錄音溜哮,去河邊找鬼。 笑死色解,一個胖子當(dāng)著我的面吹牛茂嗓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播科阎,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼述吸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了锣笨?” 一聲冷哼從身側(cè)響起刚梭,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎票唆,沒想到半個月后朴读,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡走趋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年衅金,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片簿煌。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡氮唯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姨伟,到底是詐尸還是另有隱情惩琉,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布夺荒,位于F島的核電站瞒渠,受9級特大地震影響良蒸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜伍玖,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一嫩痰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窍箍,春花似錦串纺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至邪狞,卻和暖如春五辽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背外恕。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乡翅,地道東北人鳞疲。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像蠕蚜,于是被迫代替她去往敵國和親尚洽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容