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

spring事务管理的说明

阅读更多

spring事务管理分为代码管理和配置文件管理

配置文件管理分为5种方法

Spring事务配置 (2)

 

 

详细参考:http://www.blogjava.net/robbie/archive/2009/04/05/264003.htm

 http://sunlf.iteye.com/blog/584769

针对ssh项目的说明:

 

spring事务管理是在service层进行事务管理

 

对于面向切面编程要注意的问题

<aop:pointcut id="allManagerMethod"   
    expression="execution(* org.ethip.catalog.service.*.*(..))"/> 中第一个星号表示方法的可见性,public那种,第二个星号表示具体的类,第三个表示方法。

 

http://www.blogjava.net/algz/articles/262941.html

 

<bean id="fooService" class="x.y.service.DefaultFooService"/>

<!-- the transactional advice (i.e. what 'happens'; see the <aop:advisor/> bean below) -->

<tx:advice id="txAdvice" transaction-manager="txManager">
<!-- the transactional semantics... -->

<tx:attributes>
<!-- all methods starting with 'get' are read-only -->

<tx:method name="get*" read-only="true"/>
<!-- other methods use the default transaction settings (see below) -->

<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<!-- ensure that the above transactional advice runs for any executionof an operation defined by the FooService interface -->

<aop:config>
<aop:pointcut id="fooServiceOperation" expression="execution(* x.y.service.FooService.*(..))"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceOperation"/>
</aop:config>
<!-- ******************************************************************-->
<!-- don't forget the DataSource -->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@rj-t42:1521:elvis"/>
<property name="username" value="scott"/>
<property name="password" value="tiger"/>
</bean>

<!-- similarly, don't forget the (particular) PlatformTransactionManager -->

<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- other <bean/> definitions here -->

</beans>

我们来分析一下上面的配置。我们要把一个服务对象('fooService' bean)做成事务性的。我们想施加的事务语义封装在<tx:advice/>定义中。<tx:advice/>把所有以 'get' 开头的方法看做执行在只读事务上下文中,其余的方法执行在默认语义的事务上下文中”。 其中的 'transaction-manager' 属性被设置为一个指向 PlatformTransactionManager bean的名字(这里指 'txManager'),该bean将实际上实施事务管理。

配置中最后一段是 <aop:config/> 的定义,它确保由 'txAdvice' bean定义的事务通知在应用中合适的点被执行。首先我们定义了 一个切面,它匹配 FooService 接口定义的所有操作,我们把该切面叫做 'fooServiceOperation'。然后我们用一个通知器(advisor)把这个切面与 'txAdvice' 绑定在一起,表示当 'fooServiceOperation' 执行时,'txAdvice' 定义的通知逻辑将被执行。

一个普遍性的需求是让整个服务层成为事务性的。满足该需求的最好方式是让切面表达式匹配服务层的所有操作方法。例如:

<aop:config>
    <aop:pointcut id="fooServiceMethods" expression="execution(* x.y.service.*.*(..))"/>
    <aop:advisor advice-ref="txAdvice" pointcut-ref="fooServiceMethods"/>
  </aop:config>

分享到:
评论

相关推荐

    Spring事务管理失效原因汇总

    标题“Spring事务管理失效原因汇总”指出了本文的核心内容是分析在使用Spring框架进行事务管理时可能遇到的问题及其原因。描述部分进一步说明了事务失效的后果往往不明显,容易在测试环节被忽略,但在生产环境中出现...

    spring ibatis 配置(包括事务管理)

    以下是关于"spring ibatis 配置(包括事务管理)"的详细说明: 1. **引入依赖**:首先,我们需要在项目中添加Spring和iBatis的相关依赖。通常,这会在Maven或Gradle的配置文件中完成,确保引入了正确的版本。 2. *...

    Spring中事务的传播属性详解

    Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。其中,声明式事务管理因其简洁性和易用性而更受欢迎。本文将详细介绍Spring中的事务传播属性,并通过具体的例子来解释每种传播行为的特点。 #### ...

    Spring声明式事务配置管理方法

    Spring 声明式事务管理是Spring框架中的一个重要特性,它允许开发者在不编写任何事务管理代码的情况下,通过配置来管理事务。这种方式极大地简化了事务处理,并提高了代码的可维护性。以下是关于Spring声明式事务...

    spring事务配置的五种方式

    ### Spring事务配置的五种方式详解 #### 一、引言 在企业级应用开发中,事务处理是非常重要的一部分,特别是在涉及多个数据库操作时。Spring框架提供了强大的事务管理功能,支持编程式和声明式两种事务处理方式。...

    spring声明事务的配置

    Spring声明式事务管理是Spring框架的核心特性之一,它允许开发者在不侵入业务代码的情况下,对应用程序的事务进行管理。这种方式极大地提高了代码的可维护性和灵活性。以下是对Spring声明式事务配置的详细说明: 1....

    Spring分布式事务实现

    其中,Spring的分布式事务管理是其核心特性之一,它允许开发者在分布式系统环境中处理复杂的事务逻辑。本篇将深入探讨Spring如何实现分布式事务,以及涉及到的相关技术。 首先,分布式事务是指在多个数据库或者服务...

    详细说明spring事务配置的5种方式

    本文将详细介绍Spring事务配置的五种方式,帮助你深入理解如何在Spring应用中管理事务。 1. **基于XML的声明式事务管理** 第一种方式是在每个Bean上使用代理来实现事务管理。首先,配置`DataSource`,通常是`...

    Spring Hibernate 事务处理 详细说明

    本篇文章将深入探讨Spring与Hibernate整合下的事务管理,帮助开发者理解并掌握这一关键知识点。 首先,Spring框架提供了声明式事务管理,这是通过AOP(Aspect-Oriented Programming,面向切面编程)实现的。在...

    spring的事务管理

    csdn博客竟然也出问题,好不容总结一下,竟然发不了博客。依稀csdn! 1、spring与hibernate事务管理 2、aop 3、事务管理,声明式。 3、事务传递特性说明

    spring事务配置详解

    下面是五种Spring事务配置方式的详细说明: **第一种方式:基于代理的声明式事务管理** 在这个配置中,每个业务对象(如DAO)都有一个事务代理。`TransactionProxyFactoryBean`被用来创建这个代理,它需要指定事务...

    jdbc+spring+mysql事务理解和分析

    在Java开发中,使用JDBC、Spring和MySQL进行数据操作时,事务管理是非常关键的一环。事务确保了数据的完整性和一致性,尤其是在并发环境中。以下是对`jdbc+spring+mysql事务理解和分析`的详细说明: 1. **原子性...

    Spring框架+Spring中的事务

    #### 二、Spring事务管理的重要性 事务管理在企业级应用中至关重要,因为它确保了一组操作要么全部成功要么全部失败,从而保持数据的一致性。传统上,事务管理涉及大量的样板代码,比如开启连接、提交或回滚事务等...

    Spring Boot多数据源(支持Spring声明式事务切换和回滚).pdf

    在本文中,我们将深入探讨如何实现动态数据源切换,支持Spring声明式事务管理,并讨论多数据源回滚策略。以下是对这些知识点的详细说明: 1. **动态数据源切换**: - 通过AspectJ实现数据源的动态切换,可以设置在...

    spring 事务配置的五种方法

    Spring 框架提供了丰富的事务管理功能,支持多种不同的配置方式来满足不同场景的需求。本文将详细介绍五种常见的 Spring 事务配置方法,并结合示例代码进行解析。 #### 二、每种配置方法概述 1. **每个 Bean 都有...

    基于Spring Cloud+Vue的班级事务管理系统源码+详细项目说明.zip

    基于Spring Cloud+Vue的班级事务管理系统源码+详细项目说明.zip 系统架构 项目采用B/S架构,前后端通讯采用RESTful API,数据格式使用Json,认证Token格式采用JWT。 身份认证使用Spring Security Oauth2。 前端:...

    Spring.net中文说明

    2. AOP(面向切面编程):Spring.NET提供了AOP支持,允许开发者定义横切关注点(如日志、事务管理等),并将其与业务逻辑分离,提高了代码的可重用性和可维护性。 3. 数据访问支持:Spring.NET集成了多种数据访问...

    spring事件管理

    spring 事务管理:对Spring的两种事务管理方式进行详细说明,并提供与hibernate的集成,及提供了一些实际开发技巧

Global site tag (gtag.js) - Google Analytics