Spring Value 應用參考

2021-08-15 16:34:23 字數 1829 閱讀 8926

本文帶你了解@value註解使用。@value用於給spring管理的bean欄位注入值,可以在字段、建構函式、方法引數上使用。

為了描述@value註解的多種應用方式,我們需要乙個簡單spring應用配置類。通常我們使用屬性檔案定義需要通過@value注入的值。當然,我們首先需要在配置上新增@propertysource,並指定屬性檔名稱。

定義屬性檔案的內容如下:

value.from.file=value got from

thefile

priority=properties file

listofvalues=a,b,c

最基本很少使用的用法是通過註解注入字串值。

@value("string value")

private string stringvalue;

使用@propertysource註解可以使用屬性檔案中的值,在下面示例中把檔案中的值賦給bean屬性:

@value("$")

private string valuefromfile;

我們也可以通過系統屬性賦值,下面示例假設我們定義了乙個系統屬性,名稱為systemvalue:

@value("$")

private string systemvalue;

通過預設屬性可以給bean屬性指定預設值,避免屬性沒有定義時取不到值,示例如下:

@value("$")

private string somedefault;

如果系統屬性和屬性檔案中都定義相同的屬性,那麼系統屬性優先被使用。

假設我們有乙個priority 屬性定義在系統屬性中,值為「system property」 ,同時在屬性檔案中也定義了,值為任何其他值。下面示例的**中值最終為「system property」 。

@value("$")

private string prioritysystemproperty;

有時我們需要注入多個值。在系統屬性或屬性檔案中通過定義逗號分割值賦值給陣列型別屬性。前面我們定義的屬性檔案中listofvalues為多值情況,所以下面示例陣列值為: [「a」, 「b」, 「c」]。

@value("$")

private string valuesarray;

我們也可以使用spel表示式獲取值,假設有priority系統屬性,通過spel賦值**如下:

@value("#")

private string spelvalue;

如沒有定義系統屬性,則賦值為null。為了避免null,可以在spel中提供預設值,下面示例「some default」 作為預設值:

@value("#")

private string spelsomedefault;

另外,可以使用其他bean的屬性值。假設somebean有屬性somevalue,值為10.則下面屬性值為10.

@value("#")

private integer somebeanvalue;

我們也可以list屬性賦值,下面示例屬性值為a, b, c:

@value("#'.split(',')}")

private list

valueslist;

本文通過示例簡要展示了 @value幾種不同的用法,可以從屬性檔案或系統屬性中取值,也可以通過spel表示式計算賦值。

spring value 實現原理

value 可以自動注入屬性,來看下這裡是如何實現的 component public class user string address 這個類主要負責屬性上有這兩個註解的 autowired.class value.class override public propertyvalues pos...

na tcpdump引數應用參考

詳細引數參考,我記得之前有個ppt關於這個寫的不錯.說實話,這玩意用的時候直接gg了.常用應用 過濾物理口 過濾某個port ip mac 過濾協議 顯示ip mac port不解析等 i 指定監聽的網路介面 e 在輸出行列印出資料鏈路層的頭部資訊 c 擷取指定數目的資料報 n 不把網路位址轉換成名...

Spring Value讀取配置檔案

為了簡化讀取properties檔案中的配置值,spring支援 value註解的方式來獲取,這種方式大大簡化了專案配置,提高業務中的靈活性。一 value的兩種使用方式 1 value 2 value 二 配置 1 value 使用 配置方法1 classpath value.properties...