小編給大家分享一下Spring如何讀取properties文件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)公司長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為康平企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,康平網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
我們都知道,Spring可以@Value的方式讀取properties中的值,只需要在配置文件中配置
org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
classpath:config.properties
那么在需要用到這些獲取properties中值的時(shí)候,可以這樣使用
@Value("${sql.name}") private String sqlName;
但是這有一個(gè)問題,我每用一次配置文件中的值,就要聲明一個(gè)局部變量。有沒有用代碼的方式,直接讀取配置文件中的值。
答案就是重寫PropertyPlaceholderConfigurer
public class PropertyPlaceholder extends PropertyPlaceholderConfigurer { private static MappropertyMap; @Override protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props) throws BeansException { super.processProperties(beanFactoryToProcess, props); propertyMap = new HashMap (); 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
classpath:config.properties
這樣在代碼中就可以直接用編程方式獲取
PropertyPlaceholder.getProperty("sql.name");
如果是多個(gè)配置文件,配置locations屬性
file:./jdbc.properties file:./module.config.properties classpath:jdbc.properties classpath*:*.config.properties
以上是“Spring如何讀取properties文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!