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

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

阅读更多
xml aop事务管理

1. Example
    <tx:annotation-driven transaction-manager="txManager"/>
    <bean id="txManager" class=
		"org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory"/>
    </bean>
	
    <tx:advice id="txAdvice" transaction-manager="txManager">
	<tx:attributes>
		<tx:method name="get*" read-only="false"/>
		<tx:method name="*"/>
	</tx:attributes>
    </tx:advice>
	
    <aop:config>

	<aop:pointcut id="pointcut" expression="execution(* com.mycompany.service.*.*(..))"/>
		
	<aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>

   </aop:config>


2. tx:advice 标签

   tx:advice 必须设置 transaction-manager , 它必须引用一个PlatformTransactionManager 的bean

   出此外, 还可以更详细的设置
   <tx:advice id="txAdvice" transaction-manager="txManager">
	<tx:attributes>
		<tx:method 
                       name="*"
                       isolation="READ_COMMITED"
                       propagation="REQUIRED"
                       timeout="100"/>
                <tx:method 
                       name="get*"
                       readonly=true/>
	</tx:attributes>
    </tx:advice>


3. tx:method 的属性



name
方法名的匹配模式,通知根据该模式寻找匹配的方法。

该属性可以使用asterisk (*)通配符

propagation
设定事务定义所用的传播级别

isolation
设定事务的隔离级别

timeout
指定事务的超时(单位为秒)

read-only
该属性为true指示事务是只读的(典型地,对于只执行查询的事务你会将该属性设为true,如果出现了更新、插入或是删除语句时只读事务就会失败)

no-rollback-for
以逗号分隔的异常类的列表,目标方法可以抛出这些异常而不会导致通知执行回滚

rollback-for
以逗号分隔的异常类的列表,当目标方法抛出这些异常时会导致通知执行回滚。默认情况下,该列表为空,

因此不在no-rollback-for列表中的任何运行时异常都会导致回滚



  
分享到:
评论

相关推荐

    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事务管理5种方法

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

    AspectJ in Action: Enterprise AOP with Spring Applications

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

    实验 spring 声明事务

    实验 "Spring 声明事务" 是 Java 高级编程中的一个重要环节,旨在让学生掌握 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的事务传播机制来处理数据库操作,特别是转账功能的实现。 首先,让我们了解一下什么是事务。在...

    Spring-Struts-IBatis-AOP-Transaction

    编程式事务管理需要开发者手动调用 begin/commit/rollback 方法,而声明式事务管理则更简洁,只需在方法上添加 @Transactional 注解,Spring 就会自动处理事务的开始、提交和回滚。 **SSI 集成** 在 "17-Prj-...

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

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

    08 基于注解的AOP实现.rar

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

    Spring事务配置的五种方式

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

    spring事务管理

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

Global site tag (gtag.js) - Google Analytics