程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> spring-core組件詳解——PropertyResolver屬性處理器

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

編輯:關於JAVA

spring-core組件詳解——PropertyResolver屬性處理器。本站提示廣大學習愛好者:(spring-core組件詳解——PropertyResolver屬性處理器)文章只能為提供參考,不一定能成為您想要的結果。以下是spring-core組件詳解——PropertyResolver屬性處理器正文


PropertyResolver屬性處理器,重要具有兩個功效:

經由過程propertyName屬性名獲得與之對應的propertValue屬性值(getProperty)。

把${propertyName:defaultValue}格局的屬性占位符,調換為現實的值(resolvePlaceholders)。

留意:getProperty獲得的屬性值,全都是挪用resolvePlaceholders停止占位符調換後的值。

組件系統圖以下:

PropertyResolver接口:
該接口界說了組件所具有的一切功效。其一是經由過程key獲得對應的value,當獲得不到value時,有3種選擇:前往null值、應用指定的默許值或許拋出一個不法狀況異常。獲得到的value值默許是String類型,固然也能夠以為指定一品種型,這依附於ConversionService停止類型轉換。
別的還有一個成績:屬性值中可以包括${}格局的占位符,是以,接口添加了另外一個功效就是調換屬性值中的占位符(留意:屬性名是不許可存在占位符的,就算存在,組件也不會看成占位符停止調換)。當占位符沒法調換時,也有2種選擇:堅持原樣或許拋出一個不法參數異常。詳細接口以下:

ConfigurablePropertyResolver接口:
該接口界說了若何對組件自己停止設置裝備擺設。如:方才提到獲得value時可以指定隨意率性類型,這依附於ConversionService停止類型轉換,以後接口就供給了對ConversionService的設置和獲得。別的,可以設置裝備擺設屬性占位符的格局,包含:占位符前綴(默許為"${")、占位符後綴(默許為"}")、占位符值分隔符(默許為":",用於分隔propertyName和defaultValue)。組件還可以設置哪些屬性是必需存在的,還可以校驗必需存在的屬性能否真的存在(不存在的話會拋出異常)。詳細接口以下:

AbstractPropertyResolver類:
上述兩個接口的籠統完成類。它完成了ConfigurablePropertyResolver接口的一切辦法。關於PropertyResolver接口辦法,還有3個getProperty辦法須要子類完成(其他重載辦法均挪用這3個辦法):

String getProperty(String key);
<T> T getProperty(String key, Class<T> targetType);
<T> Class<T> getPropertyAsClass(String key, Class<T> targetType);
/**
* 以後類還額定界說了一個籠統辦法,用於直接前往獲得到的value值(不停止占位符調換)。
* 普通的getProperty辦法默許都邑調換失落value值中的占位符後前往。
*/
protected abstract String getPropertyAsRawString(String key);
至於調換屬性占位符,則借助2個PropertyPlaceholderHelper屬性占位符助手(對象類)對象完成,
這2個對象一個為嚴厲形式,一個為非嚴厲形式。

PropertySourcesPropertyResolver類:
該類是系統中獨一的完全完成類。它以PropertySources屬性源聚集(外部持有屬性源列表List<PropertySource>)為屬性值的起源,順次遍歷每一個PropertySource,獲得到一個非null的屬性值則前往。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved