关闭

Spring+Mybatis多数据源配置(三)——Spring如何获取Properties文件的信息

标签: javaspringmybatis
5674人阅读 评论(0) 收藏 举报
分类:

严格来说,本博文所阐述的内容和这个系列来说,没有什么必要的关系,本博文的主题是:如何使用spring获取properties文件的信息。本博文所采用的用例都和这个系列有关,所以就放在这里讲了。

通过spring的配置(applicationContext.xml),如:<context:property-placeholder location="classpath:config.properties"/>(具体位置可以参考本系列的前两篇博文),这个就配置了spring自动加载当前classpath下的config.properties文件,这个config.properties的内容如下:

# oracle configuration
 ora_driver=oracle.jdbc.driver.OracleDriver
 ora_url=jdbc:oracle:thin:@10.10.195.185:1521:sp5000
 ora_username=shr
 ora_password=shr

 #mysql configuration
 mysql_driver=com.mysql.jdbc.Driver
 mysql_url=jdbc:mysql://10.10.193.111:3306/sp5000?useUnicode=true&characterEncoding=UTF-8
 mysql_username=shr
 mysql_password=shr

 dataSource=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 {

	@Inject
	private 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;
	
	@Test
	public 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']}")的方式获取值,可以看出后一种方法稍微复杂点,建议采用前一种方式。


2
1
查看评论

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

在上一篇同系列的博文中,讲到配置多数据源,然后根据config.properties配置不同的数据库,进行切换。而且需要根据不同的数据库,配置不同的mybatis sql映射配置文件,如下: [html] view plain copy ...
  • zhousenshan
  • zhousenshan
  • 2017-03-10 22:50
  • 646

通过Spring获取properties文件属性值

Spring提供了注解@Value,用于在程序中获取properties配置文件属性值。例如: 1. applicationContext.xml中指定配置文件。 <context:property-placeholder location="classpath:xxx.prop...
  • qing_mei_xiu
  • qing_mei_xiu
  • 2016-12-09 12:06
  • 5548

Spring 配置数据源及properties配置文件加载

jdbc.properties 在jdbc.properties属性文件中定义属性值:     jdbc.driverClassName= com.mysql.jdbc.Driver     jdbc.url= jdbc:mysq...
  • fclwd
  • fclwd
  • 2013-01-15 13:02
  • 1594

spring引入properties文件,并在controller等层获得引入文件中属性的值

参考以下两篇吧。下面两篇讲了在xml中引入jdbc.properties文件属性中的使用方法,我另外介绍一下在controller等层怎么使用配置文件中的属性。 例如:你在spring中引入了a.properties文件,a.properties文件中有一个属性a=http:8080。 当你想在co...
  • wabiaozia
  • wabiaozia
  • 2016-06-10 16:12
  • 9971

Spring和Mybatis整合时无法读取properties的处理方案

版本:Spring:3.1.4、Mybatis:3.1.1、Mybatis-Spring:1.1.1; 背景: config.properties配置文件信息 Properties代码   ##数据库(mysql|mssql|oracle...) environme...
  • w1014074794
  • w1014074794
  • 2016-08-17 12:59
  • 1854

Spring, MyBatis 多数据源的配置和管理

同一个项目有时会涉及到多个数据库,也就是多数据源。多数据源又可以分为两种情况:   1)两个或多个数据库没有相关性,各自独立,其实这种可以作为两个项目来开发。比如在游戏开发中一个数据库是平台数据库,其它还有平台下的游戏对应的数据库;   2)两个或多个数据库是master...
  • raohenglena
  • raohenglena
  • 2016-01-15 13:13
  • 826

spring + mybatis 同时连接多个数据源

本文所述是,在一个Spring+mybatis的工程内,需要连接oracle+sqlserver(两个不同的sqlserver数据库)。 直接提供配置文件 --> --> ...
  • CSDN_WANGQI
  • CSDN_WANGQI
  • 2018-02-05 16:27
  • 24

spring+mybatis多数据源配置、读写分离

实现思路:在spring中配置多个数据源,然后在service层通过注解方式标明方法所要使用的数据源,利用springAOP在service方法执行前根据方法上的注解明确所要使用的数据源。如下图 以上分析可得出,需要抽象出一个DynamicDataSource数据源,在spring中关于...
  • guying4875
  • guying4875
  • 2016-08-25 16:23
  • 1295

spring boot中自定义properties文件并获取内容

http://zk-chs.iteye.com/blog/2281978 最近项目中使用到了spring boot,这次带来点关于spring boot中properties文件的使用方法   首先你可以定义一个properties文件,如下所示: ...
  • mituan1234567
  • mituan1234567
  • 2016-12-07 16:57
  • 1260

在spring中获取properties文件键值对的两种方式

spring加载properties配置文件,spring容器中的类通过@Value注解获取,普通类如何获取spring上下文中的properties键值对
  • sully2008
  • sully2008
  • 2017-09-08 12:28
  • 515
    最新资讯
    欢迎支持《RabbitMQ实战指南》 and 关注微信公众号:朱小厮的博客。
    个人资料
    • 访问:1057086次
    • 积分:11996
    • 等级:
    • 排名:第1476名
    • 原创:213篇
    • 转载:15篇
    • 译文:3篇
    • 评论:802条
    最新评论
    博客专栏