- 浏览: 33857 次
- 性别:
- 来自: 上海
文章分类
最新评论
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>
<?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>
发表评论
-
Java总结篇系列:Java泛型
2017-03-15 17:20 527一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下 ... -
JDK,JRE,JVM区别与联系
2016-06-07 14:13 601JDK(Java Development Kit)是 ... -
40个Java多线程问题总结
2016-03-18 10:19 47340个问题汇总 1、多线程有什么用? 一个可能在很多人看 ... -
大天朝
2015-09-09 13:37 143天朝是个奇葩的国界,你无奈。但是不能抱怨,要对他有期待,并且要 ... -
Java经典面试50题
2015-05-12 09:20 835【程序1】 题目:古典问题:有一对兔子,从出生后第3个 ... -
Linux 命令合集
2015-05-12 09:08 441date 102318162014.00 设置日期和时间 ... -
linux下IPTABLES配置详解
2015-03-31 13:32 341我们来配置一个filter表的防火墙. (1)查看本机关于 ... -
在Windows与Linux下禁止被ping的设置方法
2015-03-31 13:30 653LINUX下禁止ping命令的 ... -
【转】浅谈程序优化
2015-03-24 23:16 502浅谈程序优化 当初在学校实验室的时候,常常写一个 ... -
更改远程端口(mstsc)
2015-01-17 14:51 340Windows 2003系统中的远程终端服务是一项功能非常 ... -
discuz数据库迁移,改密码后,相关配置文件修改
2014-12-12 14:47 597网站系统需要修改的位置有两处 Discuz 和 U ... -
linux下mysql的root密码忘记解决方
2014-11-30 16:02 4701.首先确认服务器出于安全的状态,也就是没有人能够任意地连接M ... -
linux下一个网卡配置多个ip【虚拟ip】
2014-11-27 10:30 941Linux下配置网卡ip别名何谓ip别名?用windows的 ... -
ssh框架的好处
2014-01-06 21:18 587典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据 ... -
frameset的三分天下.
2013-11-04 13:36 493W3的连接地址: http://www.w3school.co ... -
【转】基于PHPRPC的单点登录(SSO)的实现
2013-10-31 19:42 1059PHPRPC是什么: PHPRPC 是 ... -
Java开源加密与混淆
2013-10-29 15:02 6651. ProGuard ProGuard 是一个免费的 J ...
相关推荐
### Spring多数据源配置详解 在企业级应用中,尤其是微服务架构下,...然而,需要注意的是,多数据源配置增加了系统的复杂性,特别是在处理跨数据源的事务时,可能需要更多的考虑和设计,以确保事务的一致性和完整性。
然而,有时我们可能希望在非Web环境下或不使用JNDI的情况下配置数据源,这时我们需要在Spring的配置文件中等价地实现JNDI的数据源配置。以下是如何在Spring中进行这种转换的详细步骤和知识点: 1. **理解JNDI配置**...
本资源针对的是Spring Boot动态多数据源和JTA(Java Transaction API)分布式事务的实现,对于初学者来说非常实用。下面我们将深入探讨这些知识点。 首先,让我们了解一下Spring Boot的多数据源。在许多业务场景下...
本项目是基于Spring Boot和MyBatis实现的多数据源配置示例,适合在Spring Tool Suite (STS) 开发环境中运行。 首先,我们需要理解Spring Boot的自动配置特性。Spring Boot通过`@EnableAutoConfiguration`注解简化了...
然后使用`@Bean`注解创建DataSource对象,通过属性注入不同的数据源配置。Spring的`AbstractRoutingDataSource`可以帮助我们动态选择数据源,它可以根据预定义的规则(如请求参数、ThreadLocal等)来决定使用哪个...
首先,让我们来了解一下Spring多数据源配置。在Spring中,我们可以通过DataSourceProxy和AbstractRoutingDataSource来实现多数据源的切换。DataSourceProxy是Spring的一个代理类,它可以对数据源进行包装,以便在...
综上所述,"spring+druid+AtomikosDataSource"的组合为开发者提供了一套强大的工具,用于实现多数据源切换和分布式事务控制。在实际项目中,通过合理的配置和编码,可以构建出高效、健壮的分布式系统。在`mult-table...
6. 测试:最后,通过dstest这样的测试用例,验证多数据源配置是否正确,以及事务处理是否符合预期。 这个压缩包"dstest"可能包含了完成上述配置的源代码和测试用例,可以帮助开发者理解并实践多数据源的配置。学习...
本教程将深入探讨如何在Spring Boot应用中配置和管理两个不同的数据源,并实现事务处理。 首先,我们需要理解Spring Boot的自动配置特性。Spring Boot通过`@EnableAutoConfiguration`注解自动配置了大量常见服务,...
SpringBoot作为一款轻量级的框架,提供了便捷的多数据源配置和分布式事务管理方案,使得开发者能够高效地管理和操作不同的数据库。本文将详细探讨SpringBoot如何实现多数据源以及分布式事务。 首先,我们要理解什么...
### Spring多数据源配置与分布式数据管理 #### 环境及框架介绍 在本案例中,我们将探讨如何在基于Tomcat服务器的环境下配置多个数据源,并实现分布式数据的交互。该系统的架构主要包括:Tomcat作为应用服务器,...
**多数据源事务管理**: 在Spring 3.0中,可以通过定义多个DataSource bean并结合Atomikos的UserTransaction接口来处理多数据源事务。每个DataSource代表一个不同的数据库连接池,而Atomikos作为全局事务协调者,可以...
- **多数据源配置**:在Spring的`applicationContext`中配置所有的数据源。这些数据源可以是不同类型或不同种类的,例如Oracle、SQL Server、MySQL等。 - **装饰者模式的应用**:使用装饰者模式来包装原有的数据源,...
可以使用`@ConfigurationProperties`注解来自定义数据源配置,并通过`@Bean`创建数据源实例。 4. **启用JTA事务管理**:在主配置类上使用`@EnableJtaTransactionManager`注解,启用心跳检测和事务管理。 5. **数据...
2. 配置MyBatis:创建SqlSessionFactoryBean,设置数据源为Spring管理的数据源,这样MyBatis会使用Spring的事务管理。 3. 创建事务边界:在需要处理事务的方法上使用Spring的@Transactional注解,指定...
5. **多数据源配置**:在Spring Boot项目中,可以通过配置多个数据源来支持分布式事务。每个数据源对应一个数据库连接池,并使用特定的数据源事务管理器。 6. **开源工具和库**:如Atomikos、Bitronix等事务管理器...
- `src/main/resources`: 包含配置文件,如`application.properties`或`application.yml`,用于设置数据源、Atomikos和JTA的相关配置。 - `src/main/java`: 业务逻辑代码,包括Repository、Service和Controller层,...
为了更好地管理和扩展多数据源,可以引入配置中心(如Spring Cloud Config),将数据源配置集中管理,便于在不同环境间切换。 8. **代码结构**: 项目中的`multiple-datasource-master`可能包含了以下目录结构:`...
本文将对三种不同的事务配置方式进行深入探讨:本地事务、全局事务以及结合动态数据源的事务管理。这些配置方式在处理多数据源和复杂业务场景时具有不同的优势和适用性。 首先,我们来看“本地事务”。本地事务通常...
在MyBatis-Plus中,我们可以借助Spring Boot的多数据源配置来实现这一功能。首先,我们需要定义多个DataSource配置,每个DataSource对应一个数据库连接。这些配置通常在`application.yml`或`application.properties`...