Spring用代碼來讀取properties文件實例解析
有些時候,我們需要以Spring代碼直接讀取properties配置文件,那么我們要如何操作呢?下面我們來看看具體內容。
我們都知道,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中值的時候,可以這樣使用
@Value("${sql.name}")
private String sqlName;
但是這有一個問題,我每用一次配置文件中的值,就要聲明一個局部變量。有沒有用代碼的方式,直接讀取配置文件中的值。
答案就是重寫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");
如果是多個配置文件,配置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>
總結
以上就是本文關于Spring用代碼來讀取properties文件實例解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
Spring工廠方法創(chuàng)建(實例化)bean實例代碼
如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
- 在SpringBoot下讀取自定義properties配置文件的方法
- SpringBoot獲取yml和properties配置文件的內容
- 詳解Spring Boot加載properties和yml配置文件
- 詳解SpringMVC加載配置Properties文件的幾種方式
- 詳解spring boot 使用application.properties 進行外部配置
- Spring Boot中配置文件application.properties使用
- Spring Boot2.0 @ConfigurationProperties使用詳解
- spring boot使用i18n時properties文件中文亂碼問題的解決方法
- Spring加載properties文件的方法
- Spring中配置和讀取多個Properties文件的方式方法
- 詳解Spring加載Properties配置文件的四種方式
- Spring中屬性文件properties的讀取與使用詳解
- 談談Spring 注入properties文件總結
- spring boot application properties配置實例代碼詳解
- Spring Boot的properties配置文件讀取
- spring boot中的properties參數配置詳解
- Spring加載properties文件的兩種方式實例詳解
- spring無法讀取properties文件數據問題詳解
相關文章
Spring Security基于散列加密方案實現自動登錄功能
為了提高項目的用戶體驗,我們可以在項目中添加自動登錄功能,當然也要給用戶提供退出登錄的功能。接下來學習下Spring Security基于散列加密方案實現自動登錄功能,一起看看吧2021-09-09
Java調用windows系統(tǒng)的CMD命令并啟動新程序
本文教你如何使用java程序調用windows系統(tǒng)的CMD命令啟動新程序方法,需要的朋友可以參考下2023-05-05

