`
qiuxiaorong1979
  • 浏览: 81004 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

利用Spring进行事务管理

阅读更多
在以往的JDBC Template中事务提交成功,异常处理都是通过Try/Catch来完成。而在框架整合中,管理事务的只有Spring而已,如没有Spring,就通过hibernate本身也可以管理事务,struts根本就接触不到持久层,谈不上事务。Spring管理事务是可以通过AOP机制,将TransactionInterceptor加在需要被事物管理的最小工作单元上,一般是Service业务层spring就可以管理事务了,其本质是管理Session的打开和关闭的时机以及提交和回滚的操作。
Spring容器集成了TransactionTemplate,她封装了所有对事务处理的功能,包括异常时事务回滚,操作成功时数据提交等复杂业务功能。这都是由Spring容器来管理,大大减少了程序员的代码量,也对事务有了很好的管理控制。Hibernate中也有对事务的管理,hibernate中事务管理是通过SessionFactory创建和维护Session来完成。而Spring对SessionFactory配置也进行了整合,不需要在通过hibernate.cfg.xml来对SessionaFactory进行设定。这样的话就可以很好的利用Sping对事务管理强大功能。避免了每次对数据操作都要现获得Session实例来启动事务/提交/回滚事务还有繁琐的Try/Catch操作。这些也就是Spring中的AOP(面向切面编程)机制很好的应用。一方面使开发业务逻辑更清晰、专业分工更加容易进行。另一方面就是应用SpirngAOP隔离降低了程序的耦合性使我们可以在不同的应用中将各个切面结合起来使用大大提高了代码重用度。

<?xml version="1.0" encoding="UTF-8"?>
<beans default-autowire="byName"
       xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

  ......

  <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
      <ref bean="sessionFactory"/>
    </property>  
  </bean>  
  
  <tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
      <tx:method name="*Add" propagation="REQUIRED"/>
      <tx:method name="*Update" propagation="REQUIRED"/>
      <tx:method name="*Delete" propagation="REQUIRED"/>
      <tx:method name="*" read-only="true"/> 
    </tx:attributes>
  </tx:advice>

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



分享到:
评论

相关推荐

    利用Spring来管理Hibernate完整例子

    其中Hibernate每次都需要手动创建SessionFactory,Session,手动开启提交关闭事务。而这一切操作完全是由Spring来代替。使持久层更加方便,使开发人员减少持久层操作,把注意力放到业务上。

    spring杂谈 作者zhang KaiTao

    1.9 Spring对事务管理的支持的发展历程(基础篇) 1.10 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。 1.11 在spring中获取代理对象代理的目标对象工具类 1.12 如何为...

    Spring3.X编程技术与应用,完整扫描版

    Spring基础概念与工具、用SpringJdbcTemplate访问数据库、使用Mayen工程、Spring MVC编程、基于 MVC的资源共享网站设计、Spring的AOP编程、Spring的安全访问控制、Spring的事务管理、 Spring的任务执行与调度、...

    SpringBatch+Spring+Mybatis+MySql (spring batch 使用jar)

    Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。 业务方案: 1、批处理定期提交。 2、并行批处理:并行处理工作。 3、...

    javaSpring-经典概念题-试题-中文

    此外,还包括了Spring事务管理和Spring Boot框架的介绍,帮助学习者了解如何在Spring应用程序中实现事务管理和利用Spring Boot简化项目开发。通过这组练习题,学习者可以全面掌握Spring框架的核心知识和常用技术,为...

    在SPRING中实现事务暂停

    重点是如何在使用JTA作为后台事务策略的基础上让POJO利用Spring的声明性事务,这也显示了Spring的事务服务可以无缝地与J2EE服务器(如BEAWebLogicServer的事务协调器)的事务协调器进行交互,作为EJBC

    spring-torque-tx:Apache Torque 与 Spring 事务管理的轻量级集成

    该库提供了 Apache Torque 4.x 映射器与 Spring 事务管理的轻量级集成。 使用它,您可以利用 Spring 框架中强大的事务支持,并将 Torque 作为底层持久技术。 当前库一次只支持一个数据源的事务处理。 基本原则 ...

    Spring 2.0 开发参考手册

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 插入事务操作 9.5.8. ...

    Spring.Batch批处理框架

    Spring Batch 提供了大量可重用的组件,包括了日志、追踪、事务、任务作业统计、任务重启、跳过、重复、资源管理。对于大数据量和高性能的批处理任务,Spring Batch 同样提供了高级功能和特性来支持,比如分区功能、...

    基于spring-boot+quartz的CRUD任务管理系统.zip

    Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供...

    基于微信小程序的家庭事务管理微信小程序的实现+ssm框架.rar

    利用Spring事务管理确保了数据库操作的一致性和完整性,保证了系统的稳定性和可靠性。 家庭事务管理功能: 用户可以创建家庭组织,邀请家庭成员加入,并管理家庭成员的权限和角色。 提供任务管理功能,包括任务的...

    Spring的学习笔记

    (三) XML文件形式配置Spring事务管理 37 四、 HibernateTemplate 38 (一) HibernateTemplate 38 (二) HibernateDaoSupport 39 第十一课:Spring整合-SSH 40 一、 第一步:加入jar包(需要的jar包列表) 40 二、 第二步...

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

    9.5.1. 理解Spring的声明式事务管理实现 9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. &lt;tx:advice/&gt; 有关的设置 9.5.6. 使用 @Transactional 9.5.6.1. @Transactional 有关的设置 ...

    基于spring框架 java web技术实现员工工作日志管理系统附项目源码+数据库文件+文档说明

    利用Spring实现Java Web技术可以带来许多好处,包括: 1. 简化开发:Spring提供了一系列的模块和工具,可以帮助开发人员更快速、更高效地开发Web应用程序。例如,Spring MVC框架可以帮助开发人员构建Web应用程序的...

    基于SSM(Spring+Spring MVC+MyBatis)框架的学生宿舍管理系统

    该系统采用了Spring、Spring MVC和MyBatis等框架,利用LayUI、jQuery和JSP等前端技术实现了用户友好的界面。系统可以方便地部署在支持Java应用程序的平台上,如Tomcat等。在使用系统之前,需要按照系统要求配置...

    spring.net中文手册在线版

    14.5.1.理解Spring.NET声明式事务管理的实现 14.5.2.第一个例子 14.5.3.Transaction特性的设置 14.5.4.通过AutoProxyCreator使用声明式事务 14.5.5.通过TransactionProxyFactoryObject使用声明式事务 14.5.6. 通过...

    基于spring框架 java web技术实现在线考试管理系统附项目源码+数据库文件+文档说明

    利用Spring实现Java Web技术可以带来许多好处,包括: 1. 简化开发:Spring提供了一系列的模块和工具,可以帮助开发人员更快速、更高效地开发Web应用程序。例如,Spring MVC框架可以帮助开发人员构建Web应用程序的...

    基于java spring框架实现技术实现小区停车位管理系统附项目源码+数据库文件+文档说明

    利用Spring实现Java Web技术可以带来许多好处,包括: 1. 简化开发:Spring提供了一系列的模块和工具,可以帮助开发人员更快速、更高效地开发Web应用程序。例如,Spring MVC框架可以帮助开发人员构建Web应用程序的...

Global site tag (gtag.js) - Google Analytics