欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。

欢迎跳转到本文的原文链接: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的值。

这些是比较简要的配置,也可以配置的复杂点。可以把:<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文件的信息相关推荐

  1. spring mybatis 多数据源配置 jeesite 多数据源配置

    spring mybatis 多数据源配置 jeesite 多数据源配置 一.情景描述 在系统数据达到一定的访问量时,遇到单个数据库瓶颈,所以需要扩展数据库,启用第二个数据源资源,项目架构变成 一个服 ...

  2. Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  3. Spring+Mybatis多数据源配置(一)——MySQL与Oracle通过配置切换

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  4. Spring+MyBatis多数据源配置实现

    最近用到了MyBatis配置多数据源,原以为简单配置下就行了,实际操作后发现还是要费些事的,这里记录下,以作备忘 不多废话,直接上代码,后面会有简单的实现介绍 jdbc和log4j的配置 #定义输出格 ...

  5. Spring+MyBatis 多数据源配置和切换

    两台 MySQL 数据库(属于 master-slave 主从关系),基于 Java8,Spring4,MyBatis3.2 环境. maven 依赖配置 <dependencies>&l ...

  6. Spring+Mybatis 多数据源配置

    2013-03-14  项目目录结构如下: spring配置文件 Xml代码  <?xml version="1.0" encoding="UTF-8"? ...

  7. Spring+Mybatis多数据源配置(二)——databaseIdProvider的使用

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  8. Spring+Mybatis多数据源配置

    一.配置文件 properties ds1.driverClassName=com.mysql.jdbc.Driver ds1.url=jdbc:mysql://192.168.200.130:330 ...

  9. Spring实现多数据源配置

    一.前言 对于小型项目,服务器与数据库是可以在同一台机子上的,但随着业务的庞大与负责,数据库和服务器就会分离开来.同时随着数据量的增大,数据库也要分开部署到多台机子上. 二.Spring配置文件修改 ...

最新文章

  1. Codeforces 41D Pawn 简单dp
  2. python包与模块导入
  3. 谋定技术加工领域 中国-巴对话(国际)农民丰收节贸易会
  4. python函数知识四 迭代器、生成器
  5. nrf52840 gpiote如何配置中断输入_51单片机外部中断点亮LED
  6. leetcode 567. 字符串的排列(滑动窗口)
  7. java 文件inputstream_java – 如何在InputStream中接收多个文件并相应地处理它?
  8. 2021“华为杯”第十八届中国研究生数学建模竞赛有感
  9. 2022全球量子通信产业发展报告
  10. Hpool哈池靠谱吗?-Hpool矿池的罪与罚-除了hpool还有什么矿池?
  11. 五线谱音名和组别对照表_五线谱最全知识及符号! 太实用了,100%收藏!!!...
  12. 大学生软件设计大赛文档要求
  13. impress.js css模板,使用impress.js制作幻灯片
  14. MySQL-14使用子查询-必知必会
  15. 高防CDN是什么?有什么作用?
  16. 1041: 数列求和1
  17. 效果 - 收藏集 - 掘金
  18. 第四次作业——肖祥英
  19. samba服务器介绍
  20. 论文阅读:FACIAL: Synthesizing Dynamic Talking Face with Implicit Attribute Learning

热门文章

  1. android datepicker使用方法,android中DatePicker和TimePicker的使用方法详解
  2. ubuntu在线安装和卸载libusb
  3. MySQL存储过程使用游标循环数据列表
  4. Android journey 1@关于编码风格和命名规范
  5. .NET分布式缓存Redis从入门到实战
  6. Linux不得不知道的目录和文件
  7. Lua_第17 章 数学库
  8. AM335X的USB otg网卡(RNDIS /Ethernet Gadget)调试
  9. 写一个 JavaScript 框架:比 setTimeout 更棒的定时执行
  10. android被逼学习布局管理器