我們在專案開發中經常會用到配置資訊,例如資料庫連線的帳號、密碼等,而為了方便維護,我們通常將這些資訊放到配置檔案中。在需要用到這些配置資訊時,可以通過**獲取。下面我們看看spring中有哪些獲取配置資訊的方法。
propertiesloaderutils讀取
通過classpathresource載入配置檔案資源,結合propertiesloaderutils類讀取,原始碼如下:
try catch (ioexception e)
@value註解讀取指定屬性
配置資訊
jdbc:
account: zhangsan
pwd: 123456
讀取方法
@component
public class jdbcservice ")
private string account;
@value("$")
private string pwd;
public void connectdb()
}
@value 註解通過 $獲取配置檔案中和 key 對應的 value 值,並將value值賦給對應的變數,之後就像使用正常變數一樣就可以獲取到配置資訊。
@configurationproperties讀取一組配置資訊
@configurationproperties註解用於讀取指定字首的一組配置資訊並與bean繫結,具體的配置屬性會繫結到bean的成員屬性中,即字首名+成員屬性名等於配置檔案中的key。之後可以像使用其他bean一樣使用該bean並讀取配置資訊。
配置資訊
user:
name: zhangsan
***: 男
homeurl: www.***.com
繫結bean
@component
@data
@configurationproperties(prefix = "user")
public class user
使用bean
@service
public class userservice
}
@value適用與少量配置資訊的場景,在一些較複雜的場景下(業務繁瑣、配置項多),需要考慮把相關一組配置資訊封裝成乙個或多個配置資訊類,這時就可以使用@configurationproperties。
@propertysource讀取指定配置檔案
當我們專案比較大配置資訊比較多的時,如果所有的配置資訊都放在乙個配置檔案中,就會顯得比較臃腫且不易理解和維護。此時,我們可以按照需求將該配置檔案拆分為多個,並使用@propertysource註解配合@value或@configurationproperties讀取指定配置檔案中的配置資訊。假設我們儲存資料連線資訊的配置檔案為jdbc.properties,內容如下:
jdbc:
account: zhangsan
pwd: 123456
@component
@data
@propertysource(value = )
@configurationproperties(prefix = "jdbc")
public class jdbccfg
}
也可以和@value配合使用。
@component
@propertysource(value = )
public class jdbccfg ")
private string account;
@value("$")
private string pwd;
public void connectdb()
指定專案的配置檔案
spring:
profiles:
active:
- p
讀取複雜配置資訊
看下如下配置檔案
#http協議下訊息傳輸
#fix協議下訊息傳輸
msgtransfer.tranprocol.fix.orderid = order2
msgtransfer.tranprocol.fix.count = 200
上面的配置檔案是為了支援不同協議的訊息傳輸,該配置的key中也存在變數,這樣的配置資訊如何讀取呢?
@component
@data
@configurationproperties
(prefix =
"msgtransfer"
)public
class
msgtransfercfg
}
關鍵點在private maptranprocol;
,http
和fix
會自動對映為tranprocol
的key,orderid
和count
會對映到msginfo的成員屬性上。
如果在配置檔案的key中使用變數的,需要在相應的bean中定義map,配置檔案和map的對應規則如下:
字首.map名稱.key.pro = value
Spring Boot讀取配置檔案與配置檔案優先順序
spring boot讀取配置檔案 package com.ivan.config.controller import org.springframework.beans.factory.annotation.autowired import org.springframework.core.env...
5分鐘學會springboot讀取配置檔案
本文是基於hadoop ha基礎搭建下storm集群的搭建過程 之前文章有搭建過程 搭建過程超級簡單如下 2 安裝zookeeper集群 準備三颱機器,分別為weekend01,weekend02,weekend03,並在這三颱機器上安裝zookeeper,我們現在weekend01上安裝,然後zo...
spring boot 配置檔案讀取
如圖所示,可以重新賦值予以覆蓋。mail setting 設定郵箱主機 email.host smtp.163.com email.port 25 設定使用者名稱 email.from xx xx.com 設定密碼 email.frompassword 設定是否需要認證,如果為true,那麼使用者名...