Spring Value 屬性注入使用總結

2021-09-11 11:23:58 字數 2618 閱讀 5269

@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...