转自 http://blog.sina.com.cn/s/blog_6861c4da0100j5jm.html
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:advice id="txAdvice" transaction-manager="transactionManager" >transaction-manager默认就是transactionManager,假如你的事务ID为transactionManager的话,那写不写都无所谓
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="test*" propagation="REQUIRED" rollback-for="Exception"/>结果不写 rollback-for它弄死都不给你回滚,这个东西弄了半天
<tx:method name="*" propagation="REQUIRED" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">proxy-target-class默认是false,不写有可能给你报个错,报错信息blog最后写
<aop:advisor advice-ref="txAdvice" pointcut="execution(* *..TestUserServiceTransManager.*(..))"/>
execution(* *..TestUserServiceTransManager.*(..))实现了TestUserServiceTransManager借口的所有bean,我也不晓得哪些*是怎么写的,照书炒的
execution(* com.my.service.*.*(..))
第一个*:返回类型
第二个*:com.my.service下的class类
第三个*:com.my.service下的class类的方法
(..):传递的参数
</aop:config>
<!-- 注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
proxy-target-class和上面aop的proxy-target-class一样的,不写可能会报错
@Transactional(propagation=Propagation.REQUIRED,rollbackFor=Exception.class)
propagation=Propagation.REQUIRED可写可不写默认就这样
rollbackFor和上面rollback-for一样的,不写打死不给你回滚
今天郁闷的很,报错报安逸了,就少了2个包,分别是:cglib-2.1.3.jar,asm.jar
报错信息:
org.springframework.beans.factory.BeanCreationException
asm.jar:
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testUserServiceTransManager' defined in ServletContext resource [/WEB-INF/classes/config/spring/spring_service_test.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.core.KeyFactory
cglib-2.1.3.jar:
nested exception is org.springframework.aop.framework.AopConfigException: Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the class path or specify proxy interfaces.
不写proxy-target-class:
nested exception is java.lang.IllegalStateException: Cannot convert value of type [$Proxy4 implementing com.sjth.service.TestUserServiceTransManager,org.springframework.aop.SpringProxy,org.springframework.aop.framework.Advised] to required type [com.sjth.service.impl.TestUserServiceTransManageerImpl] for property 'testUserServiceTransManager': no matching editors or conversion strategy found
分享到:
相关推荐
Spring 事务配置是Spring框架中不可或缺的一部分,它用于管理和协调应用程序中的事务边界,确保数据的一致性和完整性。在Spring中,事务配置主要涉及到三个核心组件:DataSource、TransactionManager和代理机制。...
### Spring事务配置的五种方式详解 #### 一、引言 在企业级应用开发中,事务处理是非常重要的一部分,特别是在涉及多个数据库操作时。Spring框架提供了强大的事务管理功能,支持编程式和声明式两种事务处理方式。...
Spring 事务配置是Spring框架中不可或缺的部分,它用于管理和协调应用程序中的事务边界,确保数据的一致性和完整性。在Spring中,事务配置主要涉及到三个核心组件:DataSource、TransactionManager以及代理机制。...
Spring 事务配置SpringSpring 事务配置Spring 事务配置Spring 事务配置Spring 事务配置Spring 事务配置
本文将详细介绍Spring事务配置的五种方式,帮助你深入理解如何在Spring应用中管理事务。 1. **基于XML的声明式事务管理** 第一种方式是在每个Bean上使用代理来实现事务管理。首先,配置`DataSource`,通常是`...
下面是五种Spring事务配置方式的详细说明: **第一种方式:基于代理的声明式事务管理** 在这个配置中,每个业务对象(如DAO)都有一个事务代理。`TransactionProxyFactoryBean`被用来创建这个代理,它需要指定事务...
本文将详细解析Spring事务配置的多种方法,包括XML配置和注解方式。 首先,理解Spring事务配置的基本组件至关重要。这些组件主要包括: 1. **DataSource**:数据源,它是连接数据库的桥梁,负责管理与数据库的连接...
### Spring 事务配置详解 #### 一、Spring 事务配置概览 在现代软件开发过程中,事务管理是一项至关重要的技术,特别是在涉及数据库操作时。Spring 框架提供了丰富的事务管理支持,使得开发者能够轻松地将事务管理...
Spring事务配置的五种方式 Spring框架中事务配置是非常重要的一部分,通常由三个组成部分组成,即DataSource、TransactionManager和代理机制。无论采取何种配置方式,代理机制部分总是变化的,而DataSource和...
本篇文章将详细探讨如何在OSGi环境下解决Spring事务配置问题。 首先,我们需要理解OSGi的核心概念。OSGi提供了一个运行时环境,允许开发者创建可热插拔的Java模块,称为 bundles。这些bundles可以通过服务注册和...
Spring 事务配置解惑.html 抓下来打包成了HTML文件, 方便离线观看