@value注入
不通過配置檔案的注入屬性的情況
通過@value將外部的值動態注入到bean中,使用的情況有:
@value
("normal"
)private string normal;
// 注入普通字串
@value
("#"
)private string systempropertiesname;
// 注入作業系統屬性
@value
("#"
)private
double randomnumber;
//注入表示式結果
@value
("#"
)private string fromanotherbean;
// 注入其他bean屬性:注入beaninject物件的屬性another,類具體定義見下面
// 注入檔案資源
@value
("")private resource testurl;
// 注入url資源
注入其他bean屬性:注入beaninject物件的屬性another
@component
public
class
beaninject
public
void
setanother
(string another)
}
注入檔案資源:com/hry/spring/configinject/config.txt
test configuration file
測試類:
public
class
}@runwith
(springrunner.
class
)@springboottest
class
)public
class
}執行測試類
normal=normal
systempropertiesname=windows 10
randomnumber=
35.10603794922444
fromanotherbean=其他bean的屬性
resourcefile=test configuration file
testurl=...
/title>..
.略<
/html>
通過@value將外部配置檔案的值動態注入到bean中。配置檔案主要有兩類:
自定義屬性檔案。自定義屬性檔案通過@propertysource載入。@propertysource可以同時載入多個檔案,也可以載入單個檔案。如果相同第乙個屬性檔案和第二屬性檔案存在相同key,則最後乙個屬性檔案裡的key啟作用。載入檔案的路徑也可以配置變數,如下文的$,此值定義在第乙個屬性檔案config.properties
第乙個屬性檔案config.properties內容如下:
$作為第二個屬性檔案載入路徑的變數值
book.name=bookname
anotherfile.configinject=placeholder
第二個屬性檔案config_placeholder.properties內容如下:
book.name.placeholder=booknameplaceholder
@component
// 如果相同
@propertysource
(.properties"})
public
class
configurationfileinject")
private string bookname;
// 注入第乙個配置外部檔案屬性
@value
("$"
)private string booknameplaceholder;
// 注入第二個配置外部檔案屬性
@autowired
private environment env;
// 注入環境變數物件,儲存注入的屬性值
public string tostring()
}
@runwith
(springrunner.
class
)@springboottest
class
)public
class
}
測試執行結果
bookname=bookname
booknameplaceholder=booknameplaceholder
env=standardenvironment
env=booknameplaceholder
Spring Value 應用參考
本文帶你了解 value註解使用。value用於給spring管理的bean欄位注入值,可以在字段 建構函式 方法引數上使用。為了描述 value註解的多種應用方式,我們需要乙個簡單spring應用配置類。通常我們使用屬性檔案定義需要通過 value注入的值。當然,我們首先需要在配置上新增 prop...
spring value 實現原理
value 可以自動注入屬性,來看下這裡是如何實現的 component public class user string address 這個類主要負責屬性上有這兩個註解的 autowired.class value.class override public propertyvalues pos...
Spring In Action 屬性注入
sequencegeneratorimpl 類 scope session public class sequencegeneratorimpl implements sequencegenerator public string getprefix public void setprefix st...