多数据源动态切换——利用Spring的AbstractRoutingDataSource实现

多数据源问题很常见,只要是项目中,需要操作不同数据库中的表,就需要用到多数据源。

而多数据源的解决方案有很多,可以在配置文件中手动配置不同的dataSource,将不同的dataSource传给不同的SessionFactory来实现,但是这种方式不能在程序中动态的切换数据源,如果有需要动态切换的话,可以利用Spring2.X提供的AbstractRoutingDataSource很方便的实现:

1、首先配置多个datasource:

<bean id="dataSource1" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
        <property name="driverClass" value="com.mysql.jdbc.Driver" />

        <property name="jdbcUrl" value="jdbc:mysql://localhost/test?characterEncoding=utf8" />

        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>
    
    <bean id="dataSource2" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
        <property name="driverClass" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://localhost/test2?characterEncoding=utf8" />
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </bean>

2、写一个DynamicDataSource类继承AbstractRoutingDataSource,并实现determineCurrentLookupKey方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值