`
Harold_xlp
  • 浏览: 159335 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring中transaction的应用

阅读更多
Spring框架的事务基础架构代码将默认地 只 在抛出运行时和unchecked exceptions时才标识事务回滚;
当出现异常,都可以进行回滚,可以在CATCH块中使用下面一行代码,这种方法是手工进行设置事务回滚:
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

而另外一种方式是通过配置文件进行自动ROLLBACK,在进行事务的方法需要将异常再向上抛出,这样才能保证事务ROLLBACK,否则会出现问题!具体见下面的配置
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>

<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>

<aop:config>
    <aop:pointcut id="baseServiceMethods" expression="execution(* com.zsxn.tm.cmbcc.service.BaseProcessService.*(..))"/>
    <aop:advisor advice-ref="txAdvice" pointcut-ref="baseServiceMethods"/>
  </aop:config>
这里的定义在网上可以找到对应的解释,在这里不作说明,使用事务的目的是当在一个方法中,需要将数据插入到不同的表中,或者象发短信等应用时,当一个失败了,就需要将已经操作完成的置为没有操作的状态,这样才能保证事物的一致性!

这里需要注意的是,在AOP POINTCUT中定义的类中的方法,必须将EXCEPTION向外抛出,否则就达不到预期目的!
分享到:
评论

相关推荐

    spring-transaction.jar.zip

    《Spring 事务管理详解》 ..."spring-transaction.jar"这个库正是这些功能的具体实现,是Spring框架中不可或缺的部分。理解和熟练使用Spring事务管理,对于提升应用程序的稳定性和可靠性有着重要作用。

    Spring 常用 Transaction Annotation

    在实际应用中,需要注意事务的边界和异常处理。例如,当一个方法抛出未检查异常(继承自RuntimeException的异常)时,Spring会自动回滚事务,而检查异常(非RuntimeException)则不会导致回滚,除非明确指定`...

    Spring在Transaction事务传播行为种类

    通过本文的介绍,我们可以看到Spring框架中事务传播行为的多样性及其在实际应用中的重要性。了解并正确使用这些事务传播行为,可以帮助我们更好地设计和实现复杂的应用程序,确保数据的一致性和事务的完整性。在实际...

    springTransaction.rar

    在IT行业中,Spring框架是Java开发中的核心工具之一,尤其在企业级应用中,它提供了丰富的功能,包括依赖注入、AOP(面向切面编程)以及我们今天将要讨论的重点——事务管理。这个名为"springTransaction.rar"的...

    spring-transaction-demo.rar_DEMO_springboot_wash1vw

    通过`spring-transaction-demo`项目,我们可以学习到如何在Spring Boot应用中有效地使用事务管理,理解其背后的原理,以及如何处理事务边界内的异常情况。这个实战项目不仅有助于理论知识的理解,也提供了实际操作的...

    spring-transaction-demo:spring-transaction-demo

    下面我们将详细探讨Spring事务的传播机制以及其在实际应用中的七种使用方式。 1. **Spring事务的概述** Spring事务管理是通过编程或声明式方式实现的,它可以确保在数据库操作过程中的一致性和完整性。事务的四大...

    springtransaction 事务管理

    Spring 事务管理是Spring框架的核心特性之一,它提供了一种在Java应用中处理事务的统一方式,无论是数据库事务还是程序中的逻辑事务。Spring事务管理主要包括编程式事务管理和声明式事务管理两种方式,使得开发者...

    spring-hibernate-maven-transaction整合

    4. **Transaction管理**:在Spring中,事务管理是通过声明式或编程式的方式实现的。声明式事务管理只需在配置文件中指定哪些方法需要在事务中执行,而编程式事务管理则需要在代码中手动开启和提交事务。Spring支持...

    spring4.3.1jar包

    Spring框架是Java开发中不可或缺的一部分,它以其模块化、灵活性和强大的功能著称。Spring 4.3.1是该框架的一个稳定版本,为开发者提供了许多改进和优化。在这个版本中,Spring团队继续致力于提高性能、增强可维护性...

    软件依赖包(Spring AOP+Hibernate Transaction)

    本资源提供的"软件依赖包(Spring AOP+Hibernate Transaction)"正是这样一种集合,它包含了Spring AOP和Hibernate Transaction管理的jar文件,使得开发者能够便捷地在Java应用中实现面向切面的编程(AOP)以及事务...

    spring-transaction-synchronization:Spring事务同步示例

    在Spring框架中,事务管理是核心特性之一,它允许开发者以声明式或编程式的方式处理事务。本示例“spring-transaction-synchronization”主要探讨的是Spring的事务同步机制,这在多线程环境下处理数据库操作时尤其...

    spring源码中英文注释

    4. **事务管理(Transaction Management)**:Spring提供了声明式和编程式的事务管理。在源码中,`PlatformTransactionManager`和`@Transactional`注解是核心概念,前者定义了事务管理的策略,后者则在方法级别声明...

    Spring-Struts-IBatis-AOP-Transaction

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

    Springboot 集成Tcc-transaction1

    在Spring Boot应用中集成TCC(Try-Confirm-Cancel)分布式事务管理,是为了解决在微服务架构中跨服务的复杂事务问题。TCC模式是一种补偿型事务处理方式,它将每个业务操作分为尝试(Try)、确认(Confirm)和取消...

    Implementing Transaction Suspension in Spring

    以下配置展示了Spring的PetClinic示例应用中的服务中心 façade: ```xml &lt;bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"&gt; &lt;property name="jndiName"&gt; &lt;value&gt;java:comp/...

    Spring2.5_JPA_Transaction_Demo

    在IT行业中,Spring框架是Java企业级应用开发的首选框架,而JPA(Java Persistence API)则是Java领域中用于对象关系映射(ORM)的主要工具。本示例"Spring2.5_JPA_Transaction_Demo"专注于演示如何在Spring 2.5版本...

    Spring 中文API&开发文档.rar

    此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。 ◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    Transaction

    在实际应用中,事务处理常用于银行转账、订单创建等场景,确保数据的一致性。例如,在转账操作中,需要从一个账户扣款并同时向另一个账户存款,这两个操作必须在同一个事务内完成,如果其中任何一个失败,整个事务...

    Spring Reference 2.5 中文

    通过阅读《Spring Reference 2.5 中文》这本电子书,开发者可以深入了解Spring框架的各个方面,提升在实际项目中的应用能力。这本书涵盖了所有关键概念、API和最佳实践,是Spring学习者不可或缺的参考资料。

Global site tag (gtag.js) - Google Analytics