Spring用代碼來讀取properties文件實(shí)例解析
有些時(shí)候,我們需要以Spring代碼直接讀取properties配置文件,那么我們要如何操作呢?下面我們來看看具體內(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è)問題,我每用一次配置文件中的值,就要聲明一個(gè)局部變量。有沒有用代碼的方式,直接讀取配置文件中的值。
答案就是重寫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用代碼來讀取properties文件實(shí)例解析的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
Spring工廠方法創(chuàng)建(實(shí)例化)bean實(shí)例代碼
如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
- 在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文件中文亂碼問題的解決方法
- 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無法讀取properties文件數(shù)據(jù)問題詳解
相關(guān)文章
java生成字母數(shù)字組合的隨機(jī)數(shù)示例 java生成隨機(jī)數(shù)
這篇文章主要介紹了java生成字母數(shù)字組合的隨機(jī)數(shù)的示例,大家參考使用吧2014-01-01
Spring Security基于散列加密方案實(shí)現(xiàn)自動登錄功能
為了提高項(xiàng)目的用戶體驗(yàn),我們可以在項(xiàng)目中添加自動登錄功能,當(dāng)然也要給用戶提供退出登錄的功能。接下來學(xué)習(xí)下Spring Security基于散列加密方案實(shí)現(xiàn)自動登錄功能,一起看看吧2021-09-09
Java調(diào)用windows系統(tǒng)的CMD命令并啟動新程序
本文教你如何使用java程序調(diào)用windows系統(tǒng)的CMD命令啟動新程序方法,需要的朋友可以參考下2023-05-05
SpringBoot內(nèi)存數(shù)據(jù)導(dǎo)出成Excel的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于SpringBoot內(nèi)存數(shù)據(jù)導(dǎo)出成Excel的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

