`
cevin15
  • 浏览: 26073 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

关于Spring的事务管理,基于XML

阅读更多
在Spring中常用的事务传播行为

  • PROPAGATION_REQUIRED:如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。
  • PROPAGATION_SUPPORTS:如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行。
  • PROPAGATION_REQUIRES_NEW:总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。
  • PROPAGATION_NOT_SUPPORTED:总是非事务地执行,并挂起任何存在的事务。
  • PROPAGATION_NEVER:总是非事务地执行,如果存在一个活动事务,则抛出异常。

另外还有PROPAGATION_NESTED 与PROPAGATION_REQUIRES_NEW两种传播行为,不做介绍。

下面是基于xml的spring事务配置,使用拦截器来实现
配置Spring的事务管理器
<bean id="transactionManager"
	class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	<property name="dataSource">
		<ref local="dataSource" />
	</property>
</bean>


定义Spring的事务拦截器TransactionInterceptor
<bean id="transactionInterceptor"
	class="org.springframework.transaction.interceptor.TransactionInterceptor">
	<!--  依赖注入上面定义的事务管理器transactionManager -->
	<property name="transactionManager" ref="transactionManager" />
	<!-- 定义需要进行事务拦截的方法及所采用的事务控制类型 -->
	<property name="transactionAttributes">
		<props>
			<!-- 所有方法均进行事务控制,如果当前没有事务,则新建一个事务 -->
			<prop key="*">PROPAGATION_REQUIRED</prop>
		</props>
	</property>
</bean>


定义要拦截的方法,这里用*表示拦截全部方法
<bean id="trasactionMethodPointcutAdvisor" 
	class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor">
	<property name="mappedNames">
		<list>
			<value>*</value>
		</list>
	</property>
	<property name="advice">
		<ref local="transactionInterceptor"/>
	</property>
</bean>


定义拦截的类,这里拦截beanId以Service结尾的类(beanNames,对应xml中的beanId),在这个类中的所有数据库操作都会被视为一个事务
<bean id="ServiceAutoProxyCreator"
	class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
	<property name="proxyTargetClass" value="true" />
	<property name="beanNames">
		<list>
			<value>*Service</value>
		</list>
	</property>
	<property name="interceptorNames">
		<list>
			<value>trasactionMethodPointcutAdvisor</value>
		</list>
	</property>
</bean>
分享到:
评论

相关推荐

    Spring基于XML方式配置事务

    Spring基于XML方式配置事务

    Spring JDBC与事务管理

    (2)(2) 在BookShopDao中添加一个purchase购书方法,其操作流程是获取书的单价-&gt;买书(更新库存)-&gt;更新账户余额,在BookShopDaoImp中实现该方法,并使用基于XML和Annotation的声明式事务管理来确保该购书过程能正常...

    JavaEE的Spring JDBC与事务管理 实验

    (2) 在BookShopDao中添加一个purchase购书方法,其操作流程是获取书的单价-&gt;买书(更新库存)-&gt;更新账户余额,在BookShopDaoImp中实现该方法,并使用基于XML和Annotation的声明式事务管理来确保该购书过程能正常执行...

    spring hibernate,spring jdbc事务管理

    两个项目,一个项目是基于spring jdbc实现的分布式事务,一个是基于spring hibernate的分布式事务,hibernate项目里的applicationContext2.xml...这两个项目下来,关于spring事务这一块基本上明了,绝对对得起这个分数

    基于java的企业级应用开发:声明式事务管理.ppt

    5.2 声明式事务管理 Spring的声明式事务管理可以通过两种方式来实现,一种是基于XML的方式,另一种是基于Annotation的方式。接下来的两个小节中,将对这两种声明式事务管理方式进行详细讲解。 基于XML方式的声明式...

    Spring+Hibernate事务管理

    Spring将事务管理分成了两类: * 编程式事务管理 * 手动编写代码进行事务管理.(很少使用) * 声明式事务管理: * 基于TransactionProxyFactoryBean的方式.(很少使用) * 需要为每个进行事务管理的类,配置一个...

    Spring JDBC与事务管理源代码

    1、掌握Spring JDBC的配置; 2、掌握JdbcTemplae类中增删改查方法的使用; 3、了解Spring事务管理的3个核心接口; 4、了解Spring事务管理的两种方式;...5、掌握基于XML和Annotation的声明式事务管理的使用。

    Spring中的事务管理

    Spring中基于注解的声明式事务管理和基于XML文件的声明式事务管理测试程序

    spring框架手动提交事务,jdbctample

    按老师的说法是基于xml方式,但不准确,因为也用到了注解 &lt;aop:aspectj-autoproxy proxy-target-class="true"&gt;&lt;/aop:aspectj-autoproxy&gt; xml中要有这句,可以解决子类类报错的问题。 或者去掉这句话,同时去掉...

    spring注解事务实现demo

    声明式事务管理也有两种常用的方式,一种是基于tx和aop名字空间的xml配置文件,另一种就是基于@Transactional注解。显然基于注解的方式更简单易用,更清爽。spring注解事务实现demo

    spring声明式事务管理

    1.掌握Myeclipse的使用。 2.掌握spring框架和hibernate框架的使用。 3. 掌握整合spring和hibernate的持久化操作编程 4.掌握基于AOP的声明式事务编程...3.配置WEB-INF/applicationContext.xml提供基于AOP的声明式事务

    用于将所有Spring xml配置转换为基于Spring java的配置的工具(高分毕设).zip

    2. Spring MVC框架:Spring MVC是基于Spring框架的Web框架,用于开发Web应用程序。它采用MVC(Model-View-Controller,模型-视图-控制器)的架构模式,将应用程序分为模型层、视图层和控制器层,提供了处理请求、...

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

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

    Spring+3.x企业应用开发实战光盘源码(全)

     第9章:介绍了Spring事务管理的工作机制,通过XML、注解等方式进行事务管理配置,同时还讲解了JTA事务配置知识。  第10章:对实际应用中Spring事务管理各种疑难问题进行透彻的剖析,让读者对Spring事务管理不再有...

    Spring--事务操作.pdf

    Spring中得事务操作一图详解-&gt;基于注解、基于xml配置文件、完全注解

    基于xml配置.rar

    基于xml配置.rar

    精通Spring(书签)

    专业人士,权威经典。  Spring 2.5是迄今为止完美的...包括基于XML Schema的权威配置指南  全书理论与实践并重,通过大量的实例帮助读者尽快掌握Spring2,5的各种基本和高级使用技巧,从而提高本书的参考和阅读价值

    精通spring--源代码

    精通spring 源代码 对JavaEE5及Spring2.5进行了综述。...包括基于XML Schema的权威配置指南  全书理论与实践并重,通过大量的实例帮助读者尽快掌握Spring2,5的各种基本和高级使用技巧,从而提高本书的参考和阅读价值

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

    组成基于XML配置元数据 3.2.3. 多种bean 3.2.3.1. 命名bean 3.2.3.2. 实例化bean 3.2.4. 使用容器 3.3. 依赖 3.3.1. 注入依赖 3.3.1.1. Setter注入 3.3.1.2. 构造器注入 3.3.1.3. 一些例子 3.3.2. 构造器参数的解析...

    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. ...

Global site tag (gtag.js) - Google Analytics