Spring+Mybatis多数据源配置(三)——Spring如何获取Properties文件的信息
欢迎支持笔者新作:《深入理解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文件的信息相关推荐
- spring mybatis 多数据源配置 jeesite 多数据源配置
spring mybatis 多数据源配置 jeesite 多数据源配置 一.情景描述 在系统数据达到一定的访问量时,遇到单个数据库瓶颈,所以需要扩展数据库,启用第二个数据源资源,项目架构变成 一个服 ...
- Spring+Mybatis多数据源配置(四)——AbstractRoutingDataSource实现数据源动态切换
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- Spring+Mybatis多数据源配置(一)——MySQL与Oracle通过配置切换
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- Spring+MyBatis多数据源配置实现
最近用到了MyBatis配置多数据源,原以为简单配置下就行了,实际操作后发现还是要费些事的,这里记录下,以作备忘 不多废话,直接上代码,后面会有简单的实现介绍 jdbc和log4j的配置 #定义输出格 ...
- Spring+MyBatis 多数据源配置和切换
两台 MySQL 数据库(属于 master-slave 主从关系),基于 Java8,Spring4,MyBatis3.2 环境. maven 依赖配置 <dependencies>&l ...
- Spring+Mybatis 多数据源配置
2013-03-14 项目目录结构如下: spring配置文件 Xml代码 <?xml version="1.0" encoding="UTF-8"? ...
- Spring+Mybatis多数据源配置(二)——databaseIdProvider的使用
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- Spring+Mybatis多数据源配置
一.配置文件 properties ds1.driverClassName=com.mysql.jdbc.Driver ds1.url=jdbc:mysql://192.168.200.130:330 ...
- Spring实现多数据源配置
一.前言 对于小型项目,服务器与数据库是可以在同一台机子上的,但随着业务的庞大与负责,数据库和服务器就会分离开来.同时随着数据量的增大,数据库也要分开部署到多台机子上. 二.Spring配置文件修改 ...
最新文章
- Codeforces 41D Pawn 简单dp
- python包与模块导入
- 谋定技术加工领域 中国-巴对话(国际)农民丰收节贸易会
- python函数知识四 迭代器、生成器
- nrf52840 gpiote如何配置中断输入_51单片机外部中断点亮LED
- leetcode 567. 字符串的排列(滑动窗口)
- java 文件inputstream_java – 如何在InputStream中接收多个文件并相应地处理它?
- 2021“华为杯”第十八届中国研究生数学建模竞赛有感
- 2022全球量子通信产业发展报告
- Hpool哈池靠谱吗?-Hpool矿池的罪与罚-除了hpool还有什么矿池?
- 五线谱音名和组别对照表_五线谱最全知识及符号! 太实用了,100%收藏!!!...
- 大学生软件设计大赛文档要求
- impress.js css模板,使用impress.js制作幻灯片
- MySQL-14使用子查询-必知必会
- 高防CDN是什么?有什么作用?
- 1041: 数列求和1
- 效果 - 收藏集 - 掘金
- 第四次作业——肖祥英
- samba服务器介绍
- 论文阅读:FACIAL: Synthesizing Dynamic Talking Face with Implicit Attribute Learning
热门文章
- android datepicker使用方法,android中DatePicker和TimePicker的使用方法详解
- ubuntu在线安装和卸载libusb
- MySQL存储过程使用游标循环数据列表
- Android journey 1@关于编码风格和命名规范
- .NET分布式缓存Redis从入门到实战
- Linux不得不知道的目录和文件
- Lua_第17 章 数学库
- AM335X的USB otg网卡(RNDIS /Ethernet Gadget)调试
- 写一个 JavaScript 框架:比 setTimeout 更棒的定时执行
- android被逼学习布局管理器