本文為博主原創,轉載請注明出處。
此前曾總結過使用工具類讀取properties文件中的屬性值,有興趣的可以看一下。
如何快速獲取properties中的配置屬性值:https://www.cnblogs.com/zjdxr-up/p/7763485.html
java中Properties類及讀取properties中屬性值:https://www.cnblogs.com/zjdxr-up/p/7763485.html
這兩種方式都是在項目啟動時,將properties文件加載,第一種是將屬性文件中的值,使用工具類,即key-value的形式,在使用
的時候,根據key獲取value值。
第二種是將屬性文件中的屬性封裝為一個對象,key為屬性,value為屬性值,在項目啟動時候加載,使用的時候,可以使用對象或工具類
獲取屬性值方法直接獲取。
最近使用@Value注解讀取屬性文件中的值比較頻繁,在這總結一下。
第一種:使用PropertiesFactoryBean解析properites文件
<!-- 資源文件配置 -->
<bean id="configProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<list>
<value>classpath:conf/web.properties</value>
</list>
</property>
</bean>
讀取方法:@Value("#{id['key']}"):其中的id為PropertiesFactoryBean在spring配置文件中配置的id,key為properties文件中的key。
@Value("#{configProperties['sh.flowLstUrl']}")
private String flowLstUrl;
第二種:通過PreferencesPlaceholderConfigurer解析properites文件
<bean id="config" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
<property name="location" value="dev.properties" />
</bean>
讀取方法:
@Value("${baidu.http.url}") private String url;
注意:PropertiesFactoryBean
是PropertiesLoaderSupport
直接的實現類, 專門用來管理properties文件的工廠bean,默認是單例的。
PropertyPlaceholderConfigurer
是解決 properties 文件占位符問題的,也實現了 PropertiesLoaderSupport
類。