javascript
Spring+Mybatis多数据源配置(三)——Spring如何获取Properties文件的信息
歡迎跳轉到本文的原文鏈接:https://honeypps.com/java/spring-mybatis-multi-datasource-props-3/
嚴格來說,本博文所闡述的內容和這個系列來說,沒有什么必要的關系,本博文的主題是:如何使用spring獲取properties文件的信息。本博文所采用的用例都和這個系列有關,所以就放在這里講了。
通過spring的配置(applicationContext.xml),如:<context:property-placeholder location="classpath:config.properties"/>(具體位置可以參考本系列的前兩篇博文),這個就配置了spring自動加載當前classpath下的config.properties文件,這個config.properties的內容如下:
?
# oracle configurationora_driver=oracle.jdbc.driver.OracleDriverora_url=jdbc:oracle:thin:@10.10.195.185:1521:sp5000ora_username=shrora_password=shr#mysql configurationmysql_driver=com.mysql.jdbc.Drivermysql_url=jdbc:mysql://10.10.193.111:3306/sp5000?useUnicode=true&characterEncoding=UTF-8mysql_username=shrmysql_password=shrdataSource=oracle對于applicationContext.xml中的數據源配置如下:
?
?
<bean id="mysql" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="${mysql_driver}"/><property name="url" value="${mysql_url}"/><property name="username" value="${mysql_username}"/><property name="password" value="${mysql_password}"/></bean><bean id="oracle" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="${ora_driver}"/><property name="url" value="${ora_url}"/><property name="username" value="${ora_username}"/><property name="password" value="${ora_password}"/></bean>可以看到如${mysql_driver}這個可以自動讀取到config.properties文件中的相應字段的值。
那么java程序中如何獲取呢?且看下面這個測試用例:
?
?
package com.shr.service.userManage;import java.util.List;import javax.inject.Inject;import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Value; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.transaction.TransactionConfiguration; import org.springframework.transaction.annotation.Transactional;import com.shr.dao.model.userManage.UserListInfo;@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("file:WebContent/WEB-INF/applicationContext.xml") @Transactional @TransactionConfiguration(transactionManager="transactionManager",defaultRollback=false) public class UserManageServiceTest {@Injectprivate UserManageService userManageService;@Value("${ora_driver}")private String driver;@Value("${ora_url}")private String url;@Value("${ora_username}")private String username;@Value("${ora_password}")private String password;@Testpublic void testConfigProperties(){System.out.println(driver);System.out.println(url);System.out.println(username);System.out.println(password);} }?
運行結果:
?
oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@10.10.195.185:1521:sp5000 shr shr?
在上面的代碼中可以看到通過使用注解 @Value("${ora_driver}")就可以獲取config.properties的值。
這些是比較簡要的配置,也可以配置的復雜點??梢园?#xff1a;<context:property-placeholder location="classpath:config.properties"/>這個替換成:
?
<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"><property name="locations"><list><value>classpath:*.properties</value></list></property></bean><bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer"><property name="properties" ref="configProperties" /></bean>這樣同樣可以通過@Value("${ora_driver}")這樣的方式獲取值,也可以通過@Value("#{configProperties['ora_driver']}")的方式獲取值,可以看出后一種方法稍微復雜點,建議采用前一種方式。
?
歡迎跳轉到本文的原文鏈接:https://honeypps.com/java/spring-mybatis-multi-datasource-props-3/
歡迎支持筆者新作:《深入理解Kafka:核心設計與實踐原理》和《RabbitMQ實戰指南》,同時歡迎關注筆者的微信公眾號:朱小廝的博客。總結
以上是生活随笔為你收集整理的Spring+Mybatis多数据源配置(三)——Spring如何获取Properties文件的信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring+Mybatis多数据源配置
- 下一篇: gradle idea java ssm