最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring @Value如何通過${}、#{}注入不同類型的值

 更新時間:2024年05月31日 08:44:32   作者:少爺晚安。  
這篇文章主要介紹了Spring @Value如何通過${}、#{}注入不同類型的值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Spring @Value通過${}、#{}注入不同類型值

@Value有兩種注入方式

  • @Value("${}"):自定義參數(shù)獲取,獲取對應(yīng)屬性文件(yml或properties文件)中自定義的屬性
  • @Value("#{}"):SpEL表達式,獲取Bean的某個屬性或調(diào)用其某個方法,還可以表示常量

"${}"可以設(shè)置默認值,當從配置文件中獲取不到時,若沒有設(shè)置默認值,則會拋異常。

//在指定的配置路徑后面加冒號,在冒號后面給定默認值
@Value("${constants.test:hello}")

注意:

${}和#{}可以嵌套使用,但必須#{}外面,${}在里面,先會執(zhí)行${},因為spring執(zhí)行${}的時機要早于#{}。

不同類型注入

yml配置文件:

constants:
  test:
    string: test
    integer: 3
    list: a,b,c
    other: a.b.c
    map: "{key1:'var1', key2:'var2'}"

ps:以下所有類型注入都參考如上配置文件?。?!

String

@Value("${constants.test.string:test}")
private String value;

@Value("#{'test'}")
private String value;

Integer

@Value("${constants.test.integer:3}")
private Integer value;

@Value("#{3}")
private Integer value;

List

@Value("${constants.test.list:var1,var2,var3}")
private List<String> sList;

上面這種方式只能使用,逗號隔開,其他字符不會分割,不然會看成是一個整體的字符串

@Value("#{'${constants.test.other}'.split('.')}")
private List<String> sList;

#{}${}嵌套使用,其中${constants.test.other}是一個String類型的Bean,split方法是用來分割字符串,.為指定的分割符,當然也可以換成其他字符,但一定要和${constants.test.other}配置的一致

Map

@Value("#{${constants.test.map}}")
private Map<String, Object> map;

注意上面的map解析中,一定要用"雙引號把map所對應(yīng)的constants.test.map的值包起來,要不然解析會失敗,導(dǎo)致不能轉(zhuǎn)成 Map。

異常信息:

Could not resolve placeholder 'constants.test.map' in value "#{${constants.test.map}}"

指定類型的Bean

@Configuration
public class Config {
	@Bean("myRestTemplate")
	public RestTemplate restTemplate() {
		return new RestTemplateBuilder().build();
	}
}
@Value("#{myRestTemplate}")
private RestTemplate restTemplate;

靜態(tài)屬性賦值

spring 不允許/不支持把值注入到靜態(tài)變量。

@Value("${constants.test.string}")
private static String value;

如上操作,最后變量value的結(jié)果是等于null值。

解決方法:

spring支持set方法注入,我們可以利用非靜態(tài)setter 方法注入靜態(tài)變量。

private static String value;

@Value("${constants.test.string}")
public void setValue(String value) {
	this.value = value;
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • struts2簡介_動力節(jié)點Java學(xué)院整理

    struts2簡介_動力節(jié)點Java學(xué)院整理

    Struts2框架是MVC流程框架,適合分層開發(fā),這篇文章主要為大家詳細介紹了struts2簡介的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 一文淺析SpringBoot3中的異步批量處理操作

    一文淺析SpringBoot3中的異步批量處理操作

    對于使用 Spring Boot 3 框架的開發(fā)者而言,掌握異步批量處理操作至關(guān)重要,本文將深入探討 Spring Boot 3 中異步批量處理操作的方方面面,幫助各位開發(fā)者在實際項目中更好地應(yīng)用這一強大功能
    2025-12-12
  • controller函數(shù)中參數(shù)列表使用多個@RequestBody問題

    controller函數(shù)中參數(shù)列表使用多個@RequestBody問題

    這篇文章主要介紹了controller函數(shù)中參數(shù)列表使用多個@RequestBody問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java HashSet(散列集),HashMap(散列映射)的簡單介紹

    Java HashSet(散列集),HashMap(散列映射)的簡單介紹

    這篇文章主要介紹了Java HashSet(散列集),HashMap(散列映射)的簡單介紹,幫助大家更好的理解和學(xué)習(xí)Java集合框架的相關(guān)知識,感興趣的朋友可以了解下
    2021-01-01
  • Spring啟動流程refresh()源碼深入解析

    Spring啟動流程refresh()源碼深入解析

    這篇文章主要給大家介紹了關(guān)于Spring啟動流程refresh()源碼深入解析的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • java教程之java程序編譯運行圖解(java程序運行)

    java教程之java程序編譯運行圖解(java程序運行)

    最近重新復(fù)習(xí)了一下java基礎(chǔ),在使用javap的過程中遇到了一些問題,這里便講講對于一個類文件如何編譯、運行、反編譯的。也讓自己加深一下印象
    2014-03-03
  • JUC之Semaphore源碼分析

    JUC之Semaphore源碼分析

    這篇文章主要為大家詳細分析了JUC之Semaphore源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 怎樣給Kafka新增分區(qū)

    怎樣給Kafka新增分區(qū)

    這篇文章主要介紹了怎樣給Kafka新增分區(qū)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 詳解SpringMVC的攔截器參數(shù)及攔截器鏈配置

    詳解SpringMVC的攔截器參數(shù)及攔截器鏈配置

    攔截器(Interceptor)是一種動態(tài)攔截方法調(diào)用的機制,在SpringMVC中動態(tài)攔截控制器方法的執(zhí)行。本文將詳細講講SpringMVC中攔截器參數(shù)及攔截器鏈配置,感興趣的可以嘗試一下
    2022-07-07
  • spring?boot?Slf4j日志框架的體系結(jié)構(gòu)詳解

    spring?boot?Slf4j日志框架的體系結(jié)構(gòu)詳解

    在項目開發(fā)中記錄日志是必做的一件事情,springboot內(nèi)置了slf4j日志框架,下面這篇文章主要給大家介紹了關(guān)于spring?boot?Slf4j日志框架的體系結(jié)構(gòu),需要的朋友可以參考下
    2022-05-05

最新評論

广平县| 公安县| 芮城县| 南宫市| 万全县| 三穗县| 普陀区| 怀柔区| 沧源| 长泰县| 偏关县| 云安县| 贵南县| 巴林左旗| 普兰县| 台州市| 北流市| 呈贡县| 肥东县| 高尔夫| 察哈| 河西区| 黄浦区| 富平县| 芷江| 东辽县| 宁海县| 溆浦县| 高州市| 从江县| 临夏县| 明水县| 东乌珠穆沁旗| 建瓯市| 朝阳县| 辽中县| 英吉沙县| 门头沟区| 巴楚县| 忻城县| 九台市|