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

spring-core組件詳解——PropertyResolver屬性解決器

 更新時(shí)間:2016年05月06日 11:02:57   作者:拉風(fēng)小野驢  
這篇文章主要介紹了spring-core組件詳解——PropertyResolver屬性解決器,需要的朋友可以參考下

PropertyResolver屬性解決器,主要具有兩個(gè)功能:

通過propertyName屬性名獲取與之對(duì)應(yīng)的propertValue屬性值(getProperty)。

把${propertyName:defaultValue}格式的屬性占位符,替換為實(shí)際的值(resolvePlaceholders)。

注意:getProperty獲取的屬性值,全都是調(diào)用resolvePlaceholders進(jìn)行占位符替換后的值。

組件體系圖如下:

PropertyResolver接口:
該接口定義了組件所具有的所有功能。其一是通過key獲取對(duì)應(yīng)的value,當(dāng)獲取不到value時(shí),有3種選擇:返回null值、使用指定的默認(rèn)值或者拋出一個(gè)非法狀態(tài)異常。獲取到的value值默認(rèn)是String類型,當(dāng)然也可以認(rèn)為指定一種類型,這依賴于ConversionService進(jìn)行類型轉(zhuǎn)換。
另外還有一個(gè)問題:屬性值中可以包含${}格式的占位符,因此,接口添加了另一個(gè)功能就是替換屬性值中的占位符(注意:屬性名是不允許存在占位符的,就算存在,組件也不會(huì)當(dāng)作占位符進(jìn)行替換)。當(dāng)占位符無(wú)法替換時(shí),也有2種選擇:保持原樣或者拋出一個(gè)非法參數(shù)異常。具體接口如下:

ConfigurablePropertyResolver接口:
該接口定義了如何對(duì)組件本身進(jìn)行配置。如:剛剛提到獲取value時(shí)可以指定任意類型,這依賴于ConversionService進(jìn)行類型轉(zhuǎn)換,當(dāng)前接口就提供了對(duì)ConversionService的設(shè)置和獲取。另外,可以配置屬性占位符的格式,包括:占位符前綴(默認(rèn)為"${")、占位符后綴(默認(rèn)為"}")、占位符值分隔符(默認(rèn)為":",用于分隔propertyName和defaultValue)。組件還可以設(shè)置哪些屬性是必須存在的,還可以校驗(yàn)必須存在的屬性是否真的存在(不存在的話會(huì)拋出異常)。具體接口如下:

AbstractPropertyResolver類:
上述兩個(gè)接口的抽象實(shí)現(xiàn)類。它實(shí)現(xiàn)了ConfigurablePropertyResolver接口的所有方法。關(guān)于PropertyResolver接口方法,還有3個(gè)getProperty方法需要子類實(shí)現(xiàn)(其他重載方法均調(diào)用這3個(gè)方法):

String getProperty(String key);
<T> T getProperty(String key, Class<T> targetType);
<T> Class<T> getPropertyAsClass(String key, Class<T> targetType);
/**
* 當(dāng)前類還額外定義了一個(gè)抽象方法,用于直接返回獲取到的value值(不進(jìn)行占位符替換)。
* 一般的getProperty方法默認(rèn)都會(huì)替換掉value值中的占位符后返回。
*/
protected abstract String getPropertyAsRawString(String key);
至于替換屬性占位符,則借助2個(gè)PropertyPlaceholderHelper屬性占位符助手(工具類)對(duì)象完成,
這2個(gè)對(duì)象一個(gè)為嚴(yán)格模式,一個(gè)為非嚴(yán)格模式。

PropertySourcesPropertyResolver類:
該類是體系中唯一的完整實(shí)現(xiàn)類。它以PropertySources屬性源集合(內(nèi)部持有屬性源列表List<PropertySource>)為屬性值的來源,按序遍歷每個(gè)PropertySource,獲取到一個(gè)非null的屬性值則返回。

相關(guān)文章

  • java實(shí)現(xiàn)圖片寫入高清字體及帶邊框的方法

    java實(shí)現(xiàn)圖片寫入高清字體及帶邊框的方法

    這篇文章主要介紹了java實(shí)現(xiàn)圖片寫入高清字體及帶邊框的方法,涉及java針對(duì)圖片及文字的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程詳解

    es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程詳解

    這篇文章主要介紹了es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot中動(dòng)態(tài)數(shù)據(jù)源配置與使用詳解

    SpringBoot中動(dòng)態(tài)數(shù)據(jù)源配置與使用詳解

    在現(xiàn)代應(yīng)用中,處理多數(shù)據(jù)源是常見的需求,在 Spring Boot 中,這樣的需求可以通過動(dòng)態(tài)數(shù)據(jù)源來輕松實(shí)現(xiàn),本篇博客將詳細(xì)介紹如何在 Spring Boot 中配置和使用動(dòng)態(tài)數(shù)據(jù)源,并演示如何切換到指定的數(shù)據(jù)源,需要的朋友可以參考下
    2024-10-10
  • Java實(shí)戰(zhàn)之醫(yī)院管理系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之醫(yī)院管理系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用Java實(shí)現(xiàn)醫(yī)院管理系統(tǒng),文中用到的技術(shù)有:SpringBoot、Layui、Freemaker等,感興趣的同學(xué)可以了解一下
    2022-04-04
  • SpringBoot整合jasypt進(jìn)行重要數(shù)據(jù)加密的操作代碼

    SpringBoot整合jasypt進(jìn)行重要數(shù)據(jù)加密的操作代碼

    Jasypt(Java?Simplified?Encryption)是一個(gè)專注于簡(jiǎn)化Java加密操作的開源工具,它提供了一種簡(jiǎn)單而強(qiáng)大的方式來處理數(shù)據(jù)的加密和解密,使開發(fā)者能夠輕松地保護(hù)應(yīng)用程序中的敏感信息,本文給大家介紹了SpringBoot整合jasypt進(jìn)行重要數(shù)據(jù)加密,需要的朋友可以參考下
    2024-05-05
  • java中Cookie被禁用后Session追蹤問題

    java中Cookie被禁用后Session追蹤問題

    這篇文章主要介紹了Java中Cookie被禁用后Session追蹤問題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-03-03
  • Java中Iterator迭代器的使用詳解

    Java中Iterator迭代器的使用詳解

    在程序開發(fā)中,經(jīng)常需要遍歷集合中的所有元素。針對(duì)這種需求,JDK專門提供了一個(gè)接口java.util.Iterator。本文就來詳細(xì)說說Iterator迭代器的使用,感興趣的可以了解一下
    2022-10-10
  • Java Durid進(jìn)行JDBC連接詳解

    Java Durid進(jìn)行JDBC連接詳解

    今天給大家?guī)淼氖顷P(guān)于Java的相關(guān)知識(shí),文章簡(jiǎn)單使用Durid進(jìn)行JDBC連接,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-09-09
  • Spring管理Controller可行性原理示例分析

    Spring管理Controller可行性原理示例分析

    這篇文章主要為大家介紹了Spring管理Controller可行性原理示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Java?Base64?加密與解密示例代碼

    Java?Base64?加密與解密示例代碼

    基本的加密盡量保持簡(jiǎn)單,加密輸入字符串沒有增加任何換行符。輸出被映射到“A-Za-z0-9+/”字符集中,解密從該字符集中解析為任意字符,這篇文章主要介紹了Java?Base64?加密與解密,需要的朋友可以參考下
    2022-12-12

最新評(píng)論

广宗县| 从化市| 西林县| 漳州市| 大埔区| 西乌珠穆沁旗| 武定县| 南京市| 驻马店市| 乌兰浩特市| 南木林县| 伊春市| 南昌县| 北海市| 天祝| 四子王旗| 沽源县| 易门县| 张掖市| 南投市| 桃园县| 阿克苏市| 临沧市| 郸城县| 巫山县| 莱州市| 虎林市| 喜德县| 英山县| 上犹县| 东乌珠穆沁旗| 靖宇县| 崇礼县| 成都市| 水富县| 鄂托克前旗| 临江市| 桐柏县| 吉隆县| 平顺县| 红安县|