zoukankan      html  css  js  c++  java
  • spring多数据源事务配置

    项目中遇到多数据源问题,

    对于每个数据源需要单独完成事务控制,

    这里记录下具体实现方法

    在spring配置文件中

    定义两个数据源

      <!-- 数据源定义(spring-jndi) -->
        <jee:jndi-lookup id="datasourceX" jndi-name="jdbc/x" />
       <!-- 数据源定义(spring-jndi) -->
        <jee:jndi-lookup id="datasourceY" jndi-name="jdbc/y" />

    定义了两个事务管理器:transactionManagerX,transactionManagerY,分管两个数据源datasourceX和datasourceY.

    <bean id="transactionManagerX" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="datasourceX" />
        </bean>
        
        <bean id="transactionManagerY" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="datasourceY" />
        </bean>

      <!-- 使用annotation定义事务驱动 -->
        <tx:annotation-driven transaction-manager="transactionManagerX" />

     <tx:annotation-driven transaction-manager="transactionManagerY" />

    在使用时使用如下方式,区分事务是对于哪一个数据源做操作:

       @Transactional(value = "transactionManagerX", rollbackFor = Exception.class)

       @Transactional(value = "transactionManagerY", rollbackFor = Exception.class)

    另外做下记录,如果需要在多数据源之间完成事务性操作,需要使用Java/JTA 事务处理工具,例如:Atomikos!

  • 相关阅读:
    王者荣耀_KEY
    月亮之眼_KEY
    编号中的数学_KEY
    BZOJ1854_游戏_KEY
    BZOJ1059_矩阵游戏_KEY
    最小覆盖_KEY
    Dijkstra堆优化学习
    LuoguP1196_银河英雄传说_KEY
    BZOJ1207_打鼹鼠_KEY
    Codevs1380没有上司的舞会_KEY
  • 原文地址:https://www.cnblogs.com/widget90/p/8017105.html
Copyright © 2011-2022 走看看