spring 通过jndi配置一个或者多个数据源

[/code]META-INF目录下建一个context.xml文件
[code="ruby"]
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jndiString_1" auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="username"
password="passwd"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@192.168.1.88:1521:databaseName1"/>

<Resource name="jndiString_2" auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="username"
password="passwd"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@192.168.1.88:1521:databaseName2"/>


</Context>

上述jndiString 只是一个存在于容器中的标识字符,需要在下面spring配置中引用.


spring配置文件spring-core.xml中

<bean id="jndiString_1" class="java.lang.String">
<constructor-arg>
<value>java:comp/env/jndiString_1</value>
</constructor-arg>
</bean>

<bean id="jndiString_2" class="java.lang.String">
<constructor-arg>
<value>java:comp/env/jndiString_2</value>
</constructor-arg>
</bean>


<bean id="dataSource1"
class="org.springframework.jndi.JndiObjectFactoryBean"
singleton="true">
<property name="jndiName">
<ref local="jndiString_1"/>
</property>
</bean>

<bean id="dataSource2"
class="org.springframework.jndi.JndiObjectFactoryBean"
singleton="true">
<property name="jndiName">
<ref local="jndiString_2"/>
</property>
</bean>

......


以上程序启动需要容器支持,如果要进行单元测试 这样配置是跑不起来滴.
单元测试的配置 就直接在spring 里面配一下吧!

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>oracle.jdbc.OracleDriver</value>
</property>
<property name="url">
<value>jdbc:oracle:thin:@192.168.1.88:1521:databaseName</value>
</property>
<property name="username">
<value>username</value>
</property>
<property name="password">
<value>passwd</value>
</property>
</bean>


OK!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值