`

spring全局事务配置和多数据源配置

 
阅读更多
spring全局事务配置和多数据源配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath*:com/kingdee/cfg/hibernate.properties</value>
            </list>
        </property>
    </bean>
    <bean id="dsA" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
        <property name="maxActive" value="50" />
        <property name="maxIdle" value="30" />
        <property name="maxWait" value="1000" />
        <property name="testWhileIdle" value="true" />
        <property name="timeBetweenEvictionRunsMillis" value="1800" />
        <property name="minEvictableIdleTimeMillis" value="1800" />
    </bean>
   
    <bean id="dsB" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="${jdbc1.driverClassName}" />
        <property name="url" value="${jdbc1.url}" />
        <property name="username" value="${jdbc1.username}" />
        <property name="password" value="${jdbc1.password}" />
        <property name="maxActive" value="50" />
        <property name="maxIdle" value="30" />
        <property name="maxWait" value="1000" />
        <property name="testWhileIdle" value="true" />
        <property name="timeBetweenEvictionRunsMillis" value="1800" />
        <property name="minEvictableIdleTimeMillis" value="1800" />
    </bean>

    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="mappingLocations">
            <value>classpath:mapping/sys/*.hbm.xml</value>
        </property>
        <property name="dataSource" ref="dsA" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.connection.release_mode">${hibernate.connection.release_mode}</prop>
            </props>
        </property>
    </bean>

    <bean id="sessionFactoryB"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="mappingLocations">
            <value>classpath:mapping/sys/User.hbm.xml</value>
        </property>
        <property name="dataSource" ref="dsB" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${hibernate1.dialect}</prop>
                <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                <prop key="hibernate.connection.release_mode">${hibernate.connection.release_mode}</prop>
            </props>
        </property>
    </bean>
   
    <bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean" />
    <bean id="txManager"
        class="org.springframework.transaction.jta.JtaTransactionManager">
        <property name="userTransaction" ref="jotm" />
    </bean>
   
    <bean id="baseTransactionProxy"
        class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
        abstract="true">
        <property name="transactionManager" ref="txManager" />
        <property name="transactionAttributes">
            <props>
                <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                <prop key="do*">PROPAGATION_REQUIRED,timeout_500,-Exception</prop>
            </props>
        </property>
    </bean>
   
</beans>
分享到:
评论

相关推荐

    Spring多数据源配置

    ### Spring多数据源配置详解 在企业级应用中,尤其是微服务架构下,...然而,需要注意的是,多数据源配置增加了系统的复杂性,特别是在处理跨数据源的事务时,可能需要更多的考虑和设计,以确保事务的一致性和完整性。

    如何在spring中等价配置得到原本由jndi配置实现的数据源

    然而,有时我们可能希望在非Web环境下或不使用JNDI的情况下配置数据源,这时我们需要在Spring的配置文件中等价地实现JNDI的数据源配置。以下是如何在Spring中进行这种转换的详细步骤和知识点: 1. **理解JNDI配置**...

    Springboot 动态多数据源 jta分布式事务

    本资源针对的是Spring Boot动态多数据源和JTA(Java Transaction API)分布式事务的实现,对于初学者来说非常实用。下面我们将深入探讨这些知识点。 首先,让我们了解一下Spring Boot的多数据源。在许多业务场景下...

    STS下spring boot、mybatis多数据源配置

    本项目是基于Spring Boot和MyBatis实现的多数据源配置示例,适合在Spring Tool Suite (STS) 开发环境中运行。 首先,我们需要理解Spring Boot的自动配置特性。Spring Boot通过`@EnableAutoConfiguration`注解简化了...

    SpringBoot+Atomikos+动态多数据源+事务+2种切换数据源的方式

    然后使用`@Bean`注解创建DataSource对象,通过属性注入不同的数据源配置。Spring的`AbstractRoutingDataSource`可以帮助我们动态选择数据源,它可以根据预定义的规则(如请求参数、ThreadLocal等)来决定使用哪个...

    Spring多数据源分布式事务管理

    首先,让我们来了解一下Spring多数据源配置。在Spring中,我们可以通过DataSourceProxy和AbstractRoutingDataSource来实现多数据源的切换。DataSourceProxy是Spring的一个代理类,它可以对数据源进行包装,以便在...

    spring+druid+AtomikosDataSource实现多数据源切换及分布式事务控制

    综上所述,"spring+druid+AtomikosDataSource"的组合为开发者提供了一套强大的工具,用于实现多数据源切换和分布式事务控制。在实际项目中,通过合理的配置和编码,可以构建出高效、健壮的分布式系统。在`mult-table...

    spring+hibernate+atomikos多数据源

    6. 测试:最后,通过dstest这样的测试用例,验证多数据源配置是否正确,以及事务处理是否符合预期。 这个压缩包"dstest"可能包含了完成上述配置的源代码和测试用例,可以帮助开发者理解并实践多数据源的配置。学习...

    springboot+mybatis双数据源配置及事务处理

    本教程将深入探讨如何在Spring Boot应用中配置和管理两个不同的数据源,并实现事务处理。 首先,我们需要理解Spring Boot的自动配置特性。Spring Boot通过`@EnableAutoConfiguration`注解自动配置了大量常见服务,...

    springboot多数据源即分布式事务解决方案

    SpringBoot作为一款轻量级的框架,提供了便捷的多数据源配置和分布式事务管理方案,使得开发者能够高效地管理和操作不同的数据库。本文将详细探讨SpringBoot如何实现多数据源以及分布式事务。 首先,我们要理解什么...

    Spring多数据源配置_分布式数据

    ### Spring多数据源配置与分布式数据管理 #### 环境及框架介绍 在本案例中,我们将探讨如何在基于Tomcat服务器的环境下配置多个数据源,并实现分布式数据的交互。该系统的架构主要包括:Tomcat作为应用服务器,...

    Spring3.0+Hibernate+Atomikos多数据源分布式事务管理

    **多数据源事务管理**: 在Spring 3.0中,可以通过定义多个DataSource bean并结合Atomikos的UserTransaction接口来处理多数据源事务。每个DataSource代表一个不同的数据库连接池,而Atomikos作为全局事务协调者,可以...

    如何在spring框架中解决多数据源的问题

    - **多数据源配置**:在Spring的`applicationContext`中配置所有的数据源。这些数据源可以是不同类型或不同种类的,例如Oracle、SQL Server、MySQL等。 - **装饰者模式的应用**:使用装饰者模式来包装原有的数据源,...

    使用springboot+jta+atomikos配置多数据源事务

    可以使用`@ConfigurationProperties`注解来自定义数据源配置,并通过`@Bean`创建数据源实例。 4. **启用JTA事务管理**:在主配置类上使用`@EnableJtaTransactionManager`注解,启用心跳检测和事务管理。 5. **数据...

    spring、mybatis、atomikos实现DB2、Mysql多数据源事务demo

    2. 配置MyBatis:创建SqlSessionFactoryBean,设置数据源为Spring管理的数据源,这样MyBatis会使用Spring的事务管理。 3. 创建事务边界:在需要处理事务的方法上使用Spring的@Transactional注解,指定...

    Java 分布式事务(多数据源)

    5. **多数据源配置**:在Spring Boot项目中,可以通过配置多个数据源来支持分布式事务。每个数据源对应一个数据库连接池,并使用特定的数据源事务管理器。 6. **开源工具和库**:如Atomikos、Bitronix等事务管理器...

    Spring boot+Atomikos+JTA+Hibernate+MySQL实现分布式事务+多数据源(可运行)

    - `src/main/resources`: 包含配置文件,如`application.properties`或`application.yml`,用于设置数据源、Atomikos和JTA的相关配置。 - `src/main/java`: 业务逻辑代码,包括Repository、Service和Controller层,...

    spring boot+Druid+mybatis搭建多数据源java项目

    为了更好地管理和扩展多数据源,可以引入配置中心(如Spring Cloud Config),将数据源配置集中管理,便于在不同环境间切换。 8. **代码结构**: 项目中的`multiple-datasource-master`可能包含了以下目录结构:`...

    JAVA事务配置总结

    本文将对三种不同的事务配置方式进行深入探讨:本地事务、全局事务以及结合动态数据源的事务管理。这些配置方式在处理多数据源和复杂业务场景时具有不同的优势和适用性。 首先,我们来看“本地事务”。本地事务通常...

    Mybaits-plus优雅的实现多数据源及分表

    在MyBatis-Plus中,我们可以借助Spring Boot的多数据源配置来实现这一功能。首先,我们需要定义多个DataSource配置,每个DataSource对应一个数据库连接。这些配置通常在`application.yml`或`application.properties`...

Global site tag (gtag.js) - Google Analytics