配置文件屬性值的注入

### **1.6 配置文件屬性值的注入**

使用Spring Boot全局配置文件設(shè)置屬性時:

如果配置屬性是Spring Boot已有屬性儿子,例如服務(wù)端口server.port崎淳,那么Spring Boot內(nèi)部會自動掃描并讀取這些配置文件中的屬性值并覆蓋默認(rèn)屬性。

如果配置的屬性是用戶自定義屬性,例如剛剛自定義的Person實體類屬性,還必須在程序中注入這些配置屬性方可生效销斟。

Spring Boot支持多種注入配置文件屬性的方式,下面來介紹如何使用注解@ConfigurationProperties和@Value注入屬性?

#### 1.6.1?

使用@ConfigurationProperties注入屬性

Spring Boot提供的@ConfigurationProperties注解用來快速椒舵、方便地將配置文件中的自定義屬性值批量注入到某個Bean對象的多個對應(yīng)屬性中蚂踊。假設(shè)現(xiàn)在有一個配置文件,如果使用@ConfigurationProperties注入配置文件的屬性笔宿,示例代碼如下:

```java

@Component

@ConfigurationProperties(prefix =

"person")

public class Person {

private int id;? ? ?

// 屬性的setXX()方法

public void setId(int id) {

this.id = id;

? ? }

}

```

上述代碼使用@Component和@ConfigurationProperties(prefix

= “person”)將配置文件中的每個屬性映射到person類組件中犁钟。

需要注意的是,使用@ConfigurationProperties

#### 1.6.2 使用@Value注入屬性

@Value注解是Spring框架提供的泼橘,用來讀取配置文件中的屬性值并逐個注入到Bean對象的對應(yīng)屬性中涝动,Spring Boot框架從Spring框架中對@Value注解進行了默認(rèn)繼承,所以在Spring Boot框架中還可以使用該注解讀取和注入配置文件屬性值炬灭。使用@Value注入屬性的示例代碼如下?

```java

@Component

public class Person {

@Value("${person.id}")

private int id;? ? ?

}

```

?? ? ? ?

上述代碼中醋粟,使用@Component和@Value注入Person實體類的id屬性。其中,@Value不僅可以將配置文件的屬性注入Person的id屬性米愿,還可以直接給id屬性賦值厦凤,這點是@ConfigurationProperties不支持的?

演示@Value注解讀取并注入配置文件屬性的使用:

?? ? ? ?? (1)在com.lagou.pojo包下新創(chuàng)建一個實體類Student,并使用@Value注解注入屬性

```java

@Component

public class Student {

@Value("${person.id}")

private int id;

@Value("${person.name}")

private String name; //名稱

//省略toString

?? }

```

Student類使用@Value注解將配置文件的屬性值讀取和注入吗货。

從上述示例代碼可以看出泳唠,使用@Value注解方式需要對每一個屬性注入設(shè)置,同時又免去了屬性的setXX()方法

?? ? ?? (2)再次打開測試類進行測試

```java

@Autowired

private Student student;

@Test

public void studentTest() {

? ? ?? System.out.println(student);

}

```

打印結(jié)果:

?? ? ? ?

可以看出宙搬,測試方法studentTest()運行成功笨腥,同時正確打印出了Student實體類對象。需要說明的是勇垛,本示例中只是使用@Value注解對實例中Student對象的普通類型屬性進行了賦值演示脖母,而@Value注解對于包含Map集合、對象以及YAML文件格式的行內(nèi)式寫法的配置文件的屬性注入都不支持闲孤,如果賦值會出現(xiàn)錯誤?

***學(xué)習(xí)讓人快樂谆级,學(xué)習(xí)更讓人覺得無知!學(xué)了1個多月的《Java工程師高薪訓(xùn)練營》讼积,才發(fā)現(xiàn)自己對每個技術(shù)點的認(rèn)知都很膚淺唁影,根本深不下去淹仑,立個Flag:每天堅持學(xué)習(xí)一小時,一周回答網(wǎng)上3個技術(shù)問題,把自己知道都分享出來隆敢,奧利給芬骄!***

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末葬凳,一起剝皮案震驚了整個濱河市衅澈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窥突,老刑警劉巖努溃,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異阻问,居然都是意外死亡梧税,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門称近,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贡蓖,“玉大人,你說我怎么就攤上這事煌茬。” “怎么了彻桃?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵坛善,是天一觀的道長。 經(jīng)常有香客問我,道長眠屎,這世上最難降的妖魔是什么剔交? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮改衩,結(jié)果婚禮上岖常,老公的妹妹穿的比我還像新娘。我一直安慰自己葫督,他們只是感情好竭鞍,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著橄镜,像睡著了一般偎快。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上洽胶,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天晒夹,我揣著相機與錄音,去河邊找鬼姊氓。 笑死丐怯,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的翔横。 我是一名探鬼主播读跷,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棕孙!你這毒婦竟也來了舔亭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤蟀俊,失蹤者是張志新(化名)和其女友劉穎钦铺,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肢预,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡矛洞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了烫映。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沼本。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖锭沟,靈堂內(nèi)的尸體忽然破棺而出抽兆,到底是詐尸還是另有隱情,我是刑警寧澤族淮,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布辫红,位于F島的核電站凭涂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贴妻。R本人自食惡果不足惜切油,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望名惩。 院中可真熱鬧澎胡,春花似錦、人聲如沸娩鹉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽底循。三九已至巢株,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間熙涤,已是汗流浹背阁苞。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留祠挫,地道東北人那槽。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像等舔,于是被迫代替她去往敵國和親骚灸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361