`
xly_971223
  • 浏览: 1276869 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring的@Transactional为什么不能指定TransactionManager?

阅读更多
用过spring的人应该都使用过@Transactional注解了
在只有一个TransactionManager时没有问题
配置如下:
<!-- 事务配置 -->
	<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<!-- 使用annotation定义事务 -->
	<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="false"/>

如果有两个事务管理器 如 HibernateTransactionManager和 DataSourceTransactionManager
就不好办了

为什么不直接在@Transactional上指定事务管理器呢  比如说这样
@Transactional(transactionManager=DataSourceTransactionManager)


实现起来应该不难吧
分享到:
评论
10 楼 zhengwei49 2010-08-03  
用Spring 3吧,新增了value
@Transactional  properties
Property Type Description
value String Optional qualifier specifying the transaction manager to be used.

@Transactional("order")
    public void setSomething(String name) { ... }

9 楼 lovbreath 2010-07-19  
Norther 写道
当然可以指定,
<tx:annotation-driven transaction-manager="yourTransactionManager"/>


是在写@Transactional的时候指定。
8 楼 Norther 2010-07-12  
当然可以指定,
<tx:annotation-driven transaction-manager="yourTransactionManager"/>
7 楼 terryjs 2010-07-12  
只要 hibernate和jdbc的connection来自同一个,就可以直接用HibernateTransactionManager同时管理
6 楼 lovbreath 2010-07-12  
daquan198163 写道
如果混合使用了hibernate和jdbc的话,应该用HibernateTransactionManager


right,这个时候都会被HibernateTransactionManager管理
5 楼 daquan198163 2010-06-13  
如果混合使用了hibernate和jdbc的话,应该用HibernateTransactionManager
4 楼 miaow 2010-06-13  
小声说:用到两个TxMgr的时候能保证事务么。是得保证任何时候只用其中一个吧。
这个就把事务处理乃至持久化层的考虑要暴露到前面的层次了,不好吧。
3 楼 grave 2010-06-12  
你可以自己整一个
2 楼 wpfwupengfeiwpf 2010-06-12  
不清楚,期待牛人来解决
1 楼 goodnight 2010-06-10  
对啊,这个我之前也有遇到,后来直接用AOP配置了。

它只支持一个TransactionMamanger实在头疼。

相关推荐

    Spring @Transactional注解失效解决方案

    Spring @Transactional 注解失效解决方案 在 Spring 框架中,@Transactional 注解是用于管理事务的关键工具之一。但是,在实际开发中,我们经常会遇到 @Transactional 注解失效的问题。本篇文章将详细介绍 @...

    spring 自定义事务管理器,编程式事务,声明式事务@Transactional使用

    本教程将深入探讨如何在Spring中实现自定义事务管理器、编程式事务处理以及声明式事务`@Transactional`的使用。 首先,让我们了解事务管理的基本概念。事务是一组数据库操作,这些操作要么全部执行,要么全部回滚,...

    Spring中的@Transactional事物回滚实例源码

    在Spring框架中,`@Transactional`注解是事务管理的核心组件,它允许开发者在方法级别声明事务边界。本文将深入探讨这个注解的工作原理、如何配置以及如何在遇到异常时触发事务回滚。 首先,`@Transactional`是...

    spring的annotation-driven配置事务管理器详解 (多数据源配置

    在测试中,我们可以看到,使用 `@Transactional("transactionManagerX")` 注解可以正确地指定事务管理器,而使用 `@Transactional` 注解不带参数时,默认会使用容器中缺省的事务管理器。如果我们在 `@Transactional`...

    注解实现声明式事务管理

    在Spring框架中,注解是实现声明式事务管理的主要手段之一。相较于编程式事务管理,声明式事务管理更易于维护,因为事务管理的逻辑被声明在配置或元数据中,而不是散落在业务代码中。本篇文章将深入探讨如何使用注解...

    浅谈SpringBoot之事务处理机制

    在使用JPA作为数据访问技术的时候,Spring Boot为我们定义了PlatformTransactionManager的实现JpaTransactionManager的Bean。 Spring Boot的事务支持可以分为自动配置的事务管理器和手动配置的事务管理器两种。...

    spring 注解事务管理

    - `value`: 用于指定事务管理器的bean名称,默认值为`transactionManager`,如果不设置,Spring会自动寻找名为`transactionManager`的bean。 - `propagation`: 事务传播行为,例如`Propagation.REQUIRED`(默认值)...

    Spring声明式事务配置模板2.x

    3. **@Transactional注解**:在Java代码中,我们可以在Service层或者DAO层的方法上使用`@Transactional`注解,指定事务的属性,如传播行为、隔离级别、超时时间等。例如: ```java @Service public class ...

    SpringMVC配置多数据源实战

    使用Spring AOP来控制事务边界,通过`@Transactional`注解指定使用哪个事务管理器。 ```java @Transactional(value = "db1TransactionManager") public void methodUsingDb1() { // 使用db1的数据源 } @...

    Spring Boot的事务控制.docx

    如果这些操作不能作为一个整体来执行,一旦某个步骤失败,将会导致数据的不一致状态。 #### 二、Spring Boot 中的事务管理 在Spring Boot中,事务管理是确保应用程序稳定性和可靠性的关键组成部分。Spring提供了两...

    Spring ax/aop声明式事务配置实例

    当事务中发生未检查异常(继承自RuntimeException的异常)或在@Transactional注解中指定的检查异常时,Spring会自动回滚事务。如果希望在特定异常下不回滚事务,可以使用`@Transactional(rollbackFor=Exception....

    Spring事务不生效.pdf

    如示例代码所示,如果一个@Transactional注解的方法被声明为private,Spring在检查方法访问权限时会判定其不支持事务,导致事务失效。 ```java @Service public class UserService { @Transactional private void...

    spring事务配置的5中方式

    Spring 事务配置是Spring框架中不可或缺的一部分,它用于管理和协调应用程序中的事务边界,确保数据的一致性和完整性。在Spring中,事务配置主要涉及到三个核心组件:DataSource、TransactionManager和代理机制。...

    Spring学习笔记(17)----使用Spring注解方式管理事务

    总的来说,Spring的注解式事务管理使我们在编写业务代码时能更专注于业务逻辑,而不必关心底层的事务控制,从而提高了开发效率和代码的可维护性。通过合理地配置和使用这些注解,我们可以构建出健壮且易于扩展的应用...

    spring声明式事务处理demo

    2. **使用事务注解**:在业务服务层的方法上使用@Transactional注解,来指定哪些方法应该在事务内执行。例如,如果一个方法需要原子性操作,可以加上这个注解。默认情况下,如果方法抛出未检查异常(继承自...

    Spring事务管理A方法内部调用B方法的回滚问题测试代码

    在Spring框架中,事务管理是核心特性之一,用于确保数据操作的一致性和完整性。当一个方法(A方法)内部调用另一个方法(B方法)时,可能会遇到事务控制的复杂情况。本示例代码旨在解决在A方法内部调用B方法时的回滚...

    spring mvc + spring + hibernate 全注解整合开发视频教程 12

    通过@Autowired注解,Spring可以自动为bean提供所需的依赖。此外,Spring还提供了AOP(面向切面编程)功能,允许我们在不修改原有代码的情况下添加横切关注点,如事务管理。 Hibernate是一个流行的Java持久化框架,...

    Spring學習筆記DEMO代碼(二)

    在实际开发中,这样的示例可以帮助我们理解如何在Spring环境中配置数据源、SessionFactory以及TransactionManager,以及如何将这些配置与注解事务管理相结合。同时,它也会展示如何在Service层或DAO层的方法上使用`@...

    Spring 事务简单完整例子

    在上述例子中,`createUser`方法被标记为`@Transactional`,这意味着如果方法内部抛出未检查异常(继承自`RuntimeException`的异常)或者受检异常(如`IOException`),Spring会自动回滚事务。如果没有异常,事务将...

    深入理解Spring声明式事务:源码分析与应用实践

    Spring声明式事务是Java开发中不可或缺的一部分,它利用Spring的AOP(面向切面编程)和代理机制,为开发者提供了一种简洁的方式来管理事务。在本文中,我们将深入探讨Spring声明式事务的工作原理,源码分析,以及...

Global site tag (gtag.js) - Google Analytics