Spring用代碼來(lái)讀取properties文件實(shí)例解析
有些時(shí)候,我們需要以Spring代碼直接讀取properties配置文件,那么我們要如何操作呢?下面我們來(lái)看看具體內(nèi)容。
我們都知道,Spring可以@Value的方式讀取properties中的值,只需要在配置文件中配置
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>classpath:config.properties</value> </property> </bean>
那么在需要用到這些獲取properties中值的時(shí)候,可以這樣使用
@Value("${sql.name}") private String sqlName;
但是這有一個(gè)問(wèn)題,我每用一次配置文件中的值,就要聲明一個(gè)局部變量。有沒(méi)有用代碼的方式,直接讀取配置文件中的值。
答案就是重寫PropertyPlaceholderConfigurer
public class PropertyPlaceholder extends PropertyPlaceholderConfigurer { private static Map<String,String> propertyMap; @Override protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException { super.processProperties(beanFactoryToProcess, props); propertyMap = new HashMap<String, String>(); for (Object key : props.keySet()) { String keyStr = key.toString(); String value = props.getProperty(keyStr); propertyMap.put(keyStr, value); } } //static method for accessing context properties public static Object getProperty(String name) { return propertyMap.get(name); } }
在配置文件中,用上面的類,代替PropertyPlaceholderConfigurer
<bean id="propertyConfigurer" class="com.gyoung.mybatis.util.PropertyPlaceholder"> <property name="location"> <value>classpath:config.properties</value> </property> </bean>
這樣在代碼中就可以直接用編程方式獲取
PropertyPlaceholder.getProperty("sql.name");
如果是多個(gè)配置文件,配置locations屬性
<bean id="propertyConfigurer" class="com.gyoung.mybatis.util.PropertyPlaceholder"> <property name="ignoreResourceNotFound" value="true"/> <property name="locations"> <list> <value>file:./jdbc.properties</value> <value>file:./module.config.properties</value> <value>classpath:jdbc.properties</value> <value>classpath*:*.config.properties</value> </list> </property> </bean>
總結(jié)
以上就是本文關(guān)于Spring用代碼來(lái)讀取properties文件實(shí)例解析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
Spring實(shí)例化bean過(guò)程解析及完整代碼示例
Spring工廠方法創(chuàng)建(實(shí)例化)bean實(shí)例代碼
如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
- 在SpringBoot下讀取自定義properties配置文件的方法
- SpringBoot獲取yml和properties配置文件的內(nèi)容
- 詳解Spring Boot加載properties和yml配置文件
- 詳解SpringMVC加載配置Properties文件的幾種方式
- 詳解spring boot 使用application.properties 進(jìn)行外部配置
- Spring Boot中配置文件application.properties使用
- Spring Boot2.0 @ConfigurationProperties使用詳解
- spring boot使用i18n時(shí)properties文件中文亂碼問(wèn)題的解決方法
- Spring加載properties文件的方法
- Spring中配置和讀取多個(gè)Properties文件的方式方法
- 詳解Spring加載Properties配置文件的四種方式
- Spring中屬性文件properties的讀取與使用詳解
- 談?wù)凷pring 注入properties文件總結(jié)
- spring boot application properties配置實(shí)例代碼詳解
- Spring Boot的properties配置文件讀取
- spring boot中的properties參數(shù)配置詳解
- Spring加載properties文件的兩種方式實(shí)例詳解
- spring無(wú)法讀取properties文件數(shù)據(jù)問(wèn)題詳解
相關(guān)文章
Java使用正則表達(dá)式驗(yàn)證手機(jī)號(hào)和電話號(hào)碼的方法
今天小編就為大家分享一篇關(guān)于Java使用正則表達(dá)式驗(yàn)證手機(jī)號(hào)和電話號(hào)碼的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12Dapr在Java中的服務(wù)調(diào)用實(shí)戰(zhàn)過(guò)程詳解
這篇文章主要為大家介紹了Dapr在Java中的服務(wù)調(diào)用實(shí)戰(zhàn)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06java使用正則表達(dá)式判斷手機(jī)號(hào)的方法示例
這篇文章主要介紹了java使用正則表達(dá)式判斷手機(jī)號(hào)的方法,分析了手機(jī)號(hào)碼段的原理及java使用正則表達(dá)式針對(duì)手機(jī)號(hào)的匹配操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-06-06Java Quartz觸發(fā)器CronTriggerBean配置用法詳解
這篇文章主要介紹了Java Quartz觸發(fā)器CronTriggerBean配置用法詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08