`

Spring基于tx/aop声明式事务配置

阅读更多
在网上找到的,简洁实用。
http://blog.csdn.net/trwhoya/archive/2009/09/09/4535433.aspx


一、引入aop/tx命名空间
<beans
    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.0.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-2.0.xsd "> 

二、基于tx/aop配置
<!-- 事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory">
    <ref bean="sessionFactory"/>
  </property>
</bean>


<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
	<property name="driverClass" value="com.mysql.jdbc.Driver"/>
	<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/asl_daily_report" />
	<property name="user" value="root" />
	<property name="password" value="" />
	<property name="maxPoolSize" value="40"/>
	<property name="minPoolSize" value="1"/>
	<property name="initialPoolSize" value="1"/>
	<property name="maxIdleTime" value="20"/>
</bean>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	<property name="dataSource" ref="dataSource"></property>
</bean>


<!-- 通过aop定义事务增强切面 -->
<aop:config>
  <aop:pointcut id="serviceMethod" expression="execution(* com.cj.transaction.service.*.*(..))"/>
  <aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
  <tx:attributes>
    <tx:method name="find*" read-only="false"/>
    <tx:method name="add*" rollback-for="Exception"/>
  </tx:attributes>
</tx:advice>



expression="execution(* com.cj.transaction.service.*.*(..))" 中几个通配符的含义:

第一个 * —— 通配 任意返回值类型
第二个 * —— 通配 包com.cj.transaction.service下的任意class
第三个 * —— 通配 包com.cj.transaction.service下的任意class的任意方法
第四个 .. —— 通配 方法可以有0个或多个参数



注意:第一个*后面有一个空格
分享到:
评论
1 楼 shijincheng0223 2012-07-11  
我的也是这么配置的,但我在方法最后抛出异常,但是两次数据库插入都没有回滚啊,都插入了,这是怎么回事?数据库是oracle

相关推荐

    Spring ax/aop声明式事务配置实例

    通过以上步骤,我们成功地在Spring中实现了AOP声明式事务配置。这种方式使得事务管理与业务逻辑分离,代码更简洁、易维护。但需要注意,虽然声明式事务方便,但在复杂场景下可能需要结合编程式事务管理,以获得更高...

    spring 事务管理例子(TransactionProxyFactoryBean代理机制 和 tx/aop)

    在这个例子中,我们将聚焦于Spring的声明式事务管理,特别是通过`TransactionProxyFactoryBean`代理机制以及`@Transactional`注解与AOP(面向切面编程)的结合使用。 首先,`TransactionProxyFactoryBean`是Spring...

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

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

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

    本篇文章将重点讨论如何在Spring框架中集成Hibernate,并探讨编程式事务管理和Spring AOP的声明式事务。 首先,让我们理解Spring与Hibernate的集成。为了整合这两个库,你需要在Spring配置文件中定义Hibernate的...

    Spring中的四种声明式事务的配置

    在Spring框架中,声明式事务管理是通过AOP(面向切面编程)实现的,它允许开发者无需在业务代码中显式处理事务,而是通过配置来控制事务的边界。Spring提供了四种不同的方式来配置声明式事务,这使得事务管理更加...

    spring3,hibernate4 配置声明式事务管理(annotation方式)

    然后,启用Spring的AOP代理和声明式事务管理。在配置文件中加入以下内容: ```xml &lt;aop:config&gt; &lt;aop:pointcut id="serviceMethods" expression="execution(* com.example.service.*.*(..))"/&gt; &lt;aop:advisor ...

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

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

    Spring使用XML配置声明式事务

    在Spring框架中,声明式事务管理是实现事务处理的一种高效且灵活的方式,它允许开发者通过XML配置或注解来定义事务边界,而无需在业务逻辑代码中显式地调用开始、提交或回滚事务的方法。这篇博文"Spring使用XML配置...

    Spring 基于基于XML配置方式实现AOP

    Spring提供了声明式事务管理,通过`&lt;tx:annotation-driven&gt;`或`&lt;tx:advice&gt;`、`&lt;tx:attributes&gt;`来配置。 在实际开发中,Spring AOP结合XML配置可以提供灵活且强大的功能。然而,随着Spring的发展,基于注解的AOP...

    spring2.0声明式事务

    ### Spring 2.0 声明式事务配置详解 #### 一、Spring 2.0 声明式事务概述 随着 Spring 框架的发展,从 Spring 1.x 到 Spring 2.0 版本,声明式事务管理方式有了显著改进。在 Spring 1.x 中,主要通过 AOP 方式实现...

    spring声明式事务管理配置方式

    - 声明式事务管理背后的实现原理是基于Spring的AOP(面向切面编程),它会在方法执行前后应用事务增强,从而实现事务的自动管理。 在提供的链接中,博主可能详细解释了这些概念,并给出了实际的应用示例,包括如何...

    spring+mybatis的声明式事务

    在Spring中,声明式事务主要通过AOP(面向切面编程)实现,它允许我们在不修改业务代码的情况下,通过XML配置或Java配置,以及注解来控制事务的边界。 3. **XML配置事务** 在Spring的XML配置文件中,可以通过`&lt;tx:...

    spring-tx-5.0.0.0.RELEASE.jar_java开发_spring-tx-5.0.0_

    然而,声明式事务管理更为常用,它基于AOP(面向切面编程)实现,通过@Transactional注解在方法级别声明事务边界。 Spring TX 5.0.0.0.RELEASE.jar中,@Transactional注解是其声明式事务管理的关键。这个版本可能对...

    Xml文件配置实现声明式事务管理

    在Spring框架中,声明式事务管理是一种非常重要的特性,它允许开发者通过XML配置或注解来定义事务的边界,而无需在业务代码中显式地管理事务。这种方式极大地提高了代码的可读性和可维护性。本篇文章将深入探讨如何...

    Spring声明式事务配置模板2.x

    Spring 2.x版本的声明式事务配置模板是开发者常用的一种方式,它通过AOP(面向切面编程)实现事务的自动管理,使得开发者无需在业务代码中显式调用事务开始、提交或回滚等操作。下面我们将详细探讨Spring 2.x的声明...

    Spring 事务 (二) Spring 声明式事务 配置

    编程式事务管理通过AOP(面向切面编程)和`PlatformTransactionManager`接口手动管理事务,而声明式事务管理则是基于AOP,通过在配置或注解中声明事务边界,让Spring自动进行事务处理。 在Spring声明式事务中,主要...

    Spring使用TransactionProxyFactoryBean声明式事务配置实例

    在Spring框架中,声明式事务管理是通过元数据(如XML配置或注解)来定义事务边界,使得开发者无需在业务代码中显式调用事务管理API,即可实现事务的控制。TransactionProxyFactoryBean是Spring提供的一种工具,用于...

    spring声明式事务处理demo

    1. **配置Spring容器**:在Spring的配置文件(如`applicationContext.xml`)中,我们需要定义一个`&lt;tx:annotation-driven&gt;`元素,这将启用基于注解的声明式事务管理。同时,需要配置数据源(DataSource)和事务管理...

    spring3+hibernate4声明式事务配置(xml方式)

    本教程将深入探讨如何使用XML配置来设置Spring3和Hibernate4的声明式事务管理。 首先,我们需要了解什么是声明式事务管理。与编程式事务管理不同,声明式事务管理允许开发者通过注解或XML配置来声明事务边界,而...

Global site tag (gtag.js) - Google Analytics