原创

java中Spring管理多个数据库数据源如何配置事务

多数项目只需要一个事务管理器。然而,有些项目为了提高效率、或者有多个完全不同又不相干的数据源,最好用多个事务管理器。机智的Spring的Transactional管理已经考虑到了这一点,首先分别定义多个transactional manager,并为qualifier属性指定不同的值;然后在需要使用@Transactional注解的时候指定TransactionManager的qualifier属性值或者直接使用bean名称

工具/原料

  • 电脑

方法/步骤

  1. 以SpringMVC为例,先看看数据源、事务的配置

    <tx:annotation-driven/>


    <bean id="transactionManager1">

        <property name="dataSource" ref="datasource1"></property>

        <qualifier value="datasource1Tx"/>

    </bean>


    <bean id="transactionManager2">

        <property name="dataSource" ref="datasource2"></property>

        <qualifier value="datasource2Tx"/>

    </bean>

  2. 使用时,用@Transactional("datasource1Tx")和@Transactional("datasource2Tx"),来区别具体使用某个事务管理器


    public class TransactionalService {


        @Transactional("datasource1Tx")

        public void setSomethingInDatasource1() { ... }


        @Transactional("datasource2Tx")

        public void doSomethingInDatasource2() { ... }

    }

    END
经验内容仅供
正文到此结束
该篇文章的评论功能已被站长关闭
本文目录