Spring 3以上版本,去掉了org.springframework.transaction.jta.JotmFactoryBean类,不能通过集成Jotm实现Jta功能。
看来只能利用容器实现Jta功能了。见如下Spring文档:
<beans> <jee:jndi-lookup id="dataSource1" jndi-name="java:comp/env/jdbc/myds1"/> <jee:jndi-lookup id="dataSource2" jndi-name="java:comp/env/jdbc/myds2"/> <bean id="mySessionFactory1" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="myDataSource1"/> <property name="mappingResources"> <list> <value>product.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.MySQLDialect hibernate.show_sql=true </value> </property> </bean> <bean id="mySessionFactory2" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="myDataSource2"/> <property name="mappingResources"> <list> <value>inventory.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <value> hibernate.dialect=org.hibernate.dialect.OracleDialect </value> </property> </bean> <bean id="myTxManager" class="org.springframework.transaction.jta.JtaTransactionManager"/> <bean id="myProductDao" class="product.ProductDaoImpl"> <property name="sessionFactory" ref="mySessionFactory1"/> </bean> <bean id="myInventoryDao" class="product.InventoryDaoImpl"> <property name="sessionFactory" ref="mySessionFactory2"/> </bean> <bean id="myProductService" class="product.ProductServiceImpl"> <property name="productDao" ref="myProductDao"/> <property name="inventoryDao" ref="myInventoryDao"/> </bean> <aop:config> <aop:pointcut id="productServiceMethods" expression="execution(* product.ProductService.(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="productServiceMethods"/> </aop:config> <tx:advice id="txAdvice" transaction-manager="myTxManager"> <tx:attributes> <tx:method name="increasePrice" propagation="REQUIRED"/> <tx:method name="someOtherBusinessMethod" propagation="REQUIRES_NEW"/> <tx:method name="*" propagation="SUPPORTS" read-only="true"/> </tx:attributes> </tx:advice> </beans>
相关推荐
"Java分布式开发spring+jta+jotm"的主题涵盖了Spring框架在分布式系统中的应用,特别是如何利用JTA和JOTM来处理跨资源的分布式事务。理解和掌握这些技术对于构建可扩展、健壮的Java应用至关重要。通过深入学习和实践...
标题“spring-hibernate-jotm 例子”涉及的是一个整合Spring框架、Hibernate持久化框架以及JOTM(Java Open Transaction Manager)事务管理器的示例项目。这个项目旨在展示如何在Java应用程序中有效地管理和协调...
标题中的“spring 3.0.5 + jotm 实现的的spring mvc 的例子”表明这是一个关于使用Spring 3.0.5版本与JOTM(Java Open Transaction Manager)结合构建Spring MVC应用的示例项目。这个项目可能旨在演示如何在Spring ...
3. **Spring配置** - 在Spring的配置文件中,配置JDBC数据源,这里需要为每个数据库配置一个数据源。 - 配置JOTM事务管理器,通过`UserTransaction`接口进行事务的开始、提交和回滚。 - 使用`...
3. **声明式事务管理**:在Spring中,你可以使用`@Transactional`注解来进行声明式事务管理。当一个方法被这个注解标记时,Spring会在方法调用前后自动进行事务的开始、提交或回滚。例如: ```java @Service public...
本文将深入探讨如何使用Spring、Java Transaction API (JTA) 和 Java Object Transaction Manager (JOTM) 实现多数据源更新的解决方案。 首先,让我们理解什么是多数据源。在传统的单数据源环境中,应用程序通常...
3. **Spring配置**:在Spring的配置文件中,使用`jee:jta-data-source`或`jee:resource-ref`元素来引用之前创建的JNDI数据源,并配置`PlatformTransactionManager`为`org.objectweb.jotm.CurrentJOTM`。 **Atomikos...
Spring框架作为一个广泛使用的Java应用程序开发框架,提供了多种支持事务管理的解决方案,其中包括集成JOTM(Java Open Transaction Manager)来处理分布式事务。本文将深入探讨Spring与JOTM结合使用的知识点,帮助...
3. 创建JOTM事务管理器:在Spring配置中,定义一个`AtomikosTransactionManager`,它是Spring与JOTM交互的桥梁。你需要设置JOTM的相关属性,如事务超时时间、事务日志路径等。 4. 配置事务策略:在服务层或者DAO层...
3.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 (特别注意:Spring3.0里不在提供对jotm的封装,spring-tx里没有JotmFactoryBean.class,我在jar里添加了类) 2)Demo 导入说明: 1.Eclipse ...
### Spring + JOTM 多数据源事务管理详解(三):JNDI + Tomcat 在本篇文章中,我们将深入探讨如何利用Spring框架结合JOTM(Java Open Transaction Manager)来实现多数据源下的分布式事务管理。我们将通过具体实例...
3. **配置数据源**:对于多数据源的场景,需要为每个数据源配置一个DataSource,并将它们注册到Spring容器中。这通常涉及到数据库连接池的配置,比如C3P0或HikariCP。 4. **配置事务管理**:在Spring的配置文件中,...
NULL 博文链接:https://liangzhijian.iteye.com/blog/1404534
jotm.jar jotm.jar jotm.jar jotm.jar
本项目“spring+jotm+ibatis+mysql实现JTA分布式事务”旨在利用这些技术来确保在分布式环境中的数据一致性。下面将详细介绍这个项目所涉及的知识点。 首先,Spring框架是Java开发中最常用的应用框架之一,它提供了...
8. **集成与配置**:学习如何将JOTM集成到常见的Java应用服务器(如Tomcat、JBoss等)和Spring框架中,是实际开发中非常实用的部分。 通过深入研究JOTM 2.0的源码,开发者不仅可以掌握事务管理的精髓,还能提升对...
3. **高性能与可扩展性**:JOTM设计时考虑了性能和扩展性,能够在高并发环境下保持良好的事务处理效率,并且可以通过配置进行优化。 4. **丰富的API**:提供了一套丰富的API,开发者可以方便地进行事务控制,如开始...