`
隐形的翅膀
  • 浏览: 497359 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Transaction 四: 使用基于注解的AOP的事务管理

阅读更多
使用基于注解的AOP的事务管理

@Transactional

1. 例子
Transactional(readOnly = true, propagation=Propagation.REQUIRED)  

@Transactional(propagation=Propagation.REQUIRED)
public TradeData placeTrade(TradeData trade) throws Exception {...}


@Transactional(propagation=Propagation.REQUIRED, rollbackFor=Exception.class)
public TradeData placeTrade(TradeData trade) throws Exception {...}



2. xml 配置

<beans>

<tx:annotation-driven transaction-manager="transactionManager"/>
//使用@Transactional 注解创建恰当的事务管理切面

<aop:aspectj-autoproxy/>// 通知匹配的bean

<beans>




3. <tx:annotation-driven>标签


<tx:annotation-driven>标签是使用注解驱动的事务管理支持的核心, 所有属性如下



transactionManager:  指定到现有的PlatformTransactionManger bean 的引用, 通知会使用该引用

mode: 指定spring事务管理框架创建通知bean的方式,可用的有proxy  和 aspectj, 前者是默认值, 表示通知对象是个jdk代理,后者表示spring aop会使用ajpectj创建代理

order: 指定创建切面的顺序, 只要目标对象有多个通知就可以使用该属性

proxy-target-class: 该属性如果为true , 就表示你想要代理目标类而不是bean 所实现的所有接口



4. @Transactional           

所有属性

propagation: 指定事务定义中使用的传播

isolation: 指定事务的隔离级别

timeout: 超时时间

readonly : 如果为true, 事务标致为只读

noRollbackFor: 目标方法可抛出的异常所构成的数组,但通知仍会提交事务

rollbackFor: 异常所构成的数组,如果目标方法抛出了这些异常,通知就会回滚


5. 缺点

  a. 不的不为所有需要事务的方法加上@Transactional

    b. 把@Transactional 加在整个类上, 不需要事务的方法也运行在事务中

分享到:
评论

相关推荐

    spring注解aop demo

    Spring注解AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架中的一个重要特性,它使得开发者可以在不修改原有代码的情况下,通过添加注解来实现横切关注点,如日志、事务管理等。下面我们将深入探讨...

    spring事务,xml方式和注解方式

    在Spring中,我们可以使用@Transactional注解来标记需要进行事务管理的方法。这个注解包含了一些可选属性,如`propagation`(事务传播行为)、`isolation`(隔离级别)、`timeout`(超时时间)和`rollbackFor`(触发...

    使用Spring的声明式事务----AOP方式

    在Spring框架中,声明式事务管理是通过AOP(面向切面编程)实现的,它为开发者提供了方便、高效且灵活的事务管理机制。本文将深入探讨如何利用Spring的声明式事务来处理业务操作中的数据一致性问题,以及相关源码...

    spring基于注解实现事务

    - 事务管理需要在Spring配置中启用,例如在xml配置中添加 `&lt;tx:annotation-driven transaction-manager="transactionManager"/&gt;` 或者在Java配置中使用 `@EnableTransactionManagement` 注解。 了解了这些知识点后...

    springtransaction 事务管理

    在实际项目中,`springtransaction`工程可能是包含了一个完整的示例,用于演示如何在MyEclipse环境中配置和使用Spring的事务管理功能。开发者可以通过导入此工程,学习和实践Spring事务管理的配置与使用,从而更好地...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    在这个例子中,`&lt;tx:annotation-driven&gt;`启用基于注解的事务管理,`transactionManager`指向一个`HibernateTransactionManager`实例,它负责实际的事务操作。 总的来说,Spring和Hibernate的集成提供了强大的数据...

    mybatis 拦截器 + spring aop切面 + spring事务+ 反射工具类

    在IT行业中,MyBatis、Spring AOP、Spring事务管理和反射工具类是常见的技术栈,它们在构建高效、灵活的企业级应用中起着至关重要的作用。以下是对这些知识点的详细阐述: 1. MyBatis拦截器(MyBatis Interceptor)...

    spring事务与数据库操作

    Spring的声明式事务管理是通过配置文件或注解的方式来实现的。这种方式将业务逻辑与事务管理代码分离,使得代码更加清晰且易于维护。 ##### 1.2 配置Spring声明式事务 要启用Spring的声明式事务管理,通常需要做...

    Spring事务管理的三种方式

    本篇文章将详细探讨Spring中的三种事务管理方式:编程式事务管理、声明式事务管理和基于注解的事务管理。 首先,编程式事务管理是通过编码来控制事务的开始、提交、回滚等操作。Spring提供了...

    spring-transaction.jar.zip

    1. XML配置:在Spring的配置文件中,使用`&lt;tx:advice&gt;`定义事务处理规则,然后通过`&lt;aop:config&gt;`或`&lt;aop:aspect&gt;`将事务规则应用到特定的业务方法上。 2. 注解驱动:使用@Transactional注解在方法上,Spring会自动...

    springTransaction.rar

    这个名为"springTransaction.rar"的压缩包文件包含了一个关于Spring事务管理的小型示例,旨在演示如何使用Spring的事务传播机制来处理数据库操作,特别是转账功能的实现。 首先,让我们了解一下什么是事务。在...

    AspectJ in Action: Enterprise AOP with Spring Applications

    - **避免过度使用AOP:**过度使用AOP可能会导致系统复杂度增加,应谨慎考虑是否真正需要引入AOP。 - **注意性能影响:**虽然AOP可以提高代码的可维护性和可扩展性,但过度使用可能会对性能产生负面影响。 #### 代码...

    实验 spring 声明事务

    实验 "Spring 声明事务" 是 Java 高级编程中的一个重要环节,旨在让学生掌握 Spring 框架中声明式事务管理的配置和使用。在实际应用中,事务管理是确保数据一致性、完整性和可靠性的关键组件。Spring 提供了声明式...

    spring事务管理5种方法

    - XML配置:在Spring的配置文件中,可以使用`&lt;tx:advice&gt;`定义事务处理规则,然后通过`&lt;aop:config&gt;`或`&lt;aop:aspect&gt;`进行切面配置,将事务处理与业务代码关联。 - 注解驱动:Spring 2.5以后,推荐使用注解来管理...

    Spring-Struts-IBatis-AOP-Transaction

    在 "17-Prj-Spring-Struts-IBatis-AOP-Transaction" 这个项目中,这四个框架被集成在一起,形成一个强大的 web 应用开发解决方案。Spring 作为整个系统的基石,负责依赖注入和事务管理;Struts 2 处理 HTTP 请求,...

    Spring2.x对事务的管理(AOP)

    1. **注解驱动的事务管理**: 使用`@Transactional`注解在方法或类上,Spring会自动识别并处理事务。例如: ```java @Service public class UserService { @Transactional public void createUser(User user) {...

    Spring事务管理4种方式

    本文将详细介绍Spring事务管理的四种方式:编程式事务管理、声明式事务管理、PlatformTransactionManager接口以及TransactionTemplate。 1. **编程式事务管理**:这是一种手动控制事务的方式,通过在代码中调用`...

    08 基于注解的AOP实现.rar

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许程序员将关注点分离,例如日志记录、事务管理、权限检查等,这些通常被称为横切关注点,从核心业务逻辑中抽离出来。基于注解的AOP实现是Spring提供的一...

    spring事务管理

    4. **通知应用**:使用`aop:advisor`将事务通知应用到之前定义的切入点上。 #### 四、总结 通过上述示例可以看出,Spring事务管理不仅支持编程式事务管理,还提供了更为简便的声明式事务管理方式。在实际开发中,...

Global site tag (gtag.js) - Google Analytics