- 浏览: 148084 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
august_000:
很有道理,我已经亲自测试过了:
public class ...
单例模式之线程安全解析 -
Chris_bing:
一个单例有这么多名堂,最后那个内部类的解决方案很有创意啊,受教 ...
单例模式之线程安全解析
Spring声明式事务功能应该是大家应用Spring中使用的最多的功能之一了,的确该功能极大的简化了大家对数据库操作的。目前Spring支持的声明式事务有两个配置方式,一种是XML配置方式,另一种是注解方式。
针对配置这块,XML配置同学们会觉得比较麻烦,特别是针对事务属性的配置,所以补充一下本块配置说明,特分享给大家,希望对大家有帮助。
下面是Spring的XML配置事务比较常用的方式,也是我们这边事务XML配置事务的使用方式,本文以该种配置为例,进行说明。
配置详解说明如下:
TransactionInterceptor 是声明式事务拦截器。可以由Spring AOP拦截器进行回调。
transactionAttributes 是事务属性的配置说明,也是大家觉得比较不好配置,不太容易记忆的地方。
它的配置规则如下:因为都有前缀标识,所以顺序可以修改。
(PROPAGATION_NAME,ISOLATION_NAME,readOnly,timeout_NNNN,+Exception1,-Exception2)
PROPAGATION_REQUIRED 事务的传播级别(以PROPAGATION_开头). 可设置值说明如下:
PROPAGATION_REQUIRED 使用当前事务,如果当前没有事务,则开启新事务
PROPAGATION_SUPPORTS 当前有事务则用,没有事务则不用
PROPAGATION_MANDATORY 当前有事务就用,没有事务则报错(必须要用事务)
PROPAGATION_REQUIRES_NEW 当前有事务则挂起原事务,新启事务(必开新事务)
PROPAGATION_NOT_SUPPORTED 不使用事务,如果当前有事务,则挂起事务
PROPAGATION_NEVER 不能有事务,如果当前有事务,则报错(必须没有事务)
PROPAGATION_NESTED 同 PROPAGATION_REQUIRED
ISOLATION_DEFAULT 事务隔离级别(以ISOLATION_开头)
ISOLATION_DEFAULT 使用数据库默认事务
ISOLATION_READ_UNCOMMITTED
ISOLATION_READ_COMMITTED
ISOLATION_REPEATABLE_READ
ISOLATION_SERIALIZABLE
readOnly
如果设置,则表示只读事务,如果不设置,则表示读来事务。
TIMEOUT_DEFAULT 事务超时设置(timeout_ 开头),单位是秒。 例如 timeout_20, 则表示事务超时时间是20秒。
+Exception 表示遇到该异常时,执行回滚
–Exception 表示遇到该异常时,不执行加滚
transactionManager 是事务管理器,针对不同的持久层,事务都会提供不同的实现。其接口都是org.springframework.transaction.PlatformTransactionManager
XML配置事务方式的优点就是不用改任何代码,希望此份配置详解可以对大家有帮助
针对配置这块,XML配置同学们会觉得比较麻烦,特别是针对事务属性的配置,所以补充一下本块配置说明,特分享给大家,希望对大家有帮助。
下面是Spring的XML配置事务比较常用的方式,也是我们这边事务XML配置事务的使用方式,本文以该种配置为例,进行说明。
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager" ref="transactionManager" /> <property name="transactionAttributes"> <props> <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="get*">PROPAGATION_SUPPORTS,readOnly</prop> <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="*">PROPAGATION_REQUIRED</prop> </props> </property> </bean>
配置详解说明如下:
TransactionInterceptor 是声明式事务拦截器。可以由Spring AOP拦截器进行回调。
transactionAttributes 是事务属性的配置说明,也是大家觉得比较不好配置,不太容易记忆的地方。
它的配置规则如下:因为都有前缀标识,所以顺序可以修改。
(PROPAGATION_NAME,ISOLATION_NAME,readOnly,timeout_NNNN,+Exception1,-Exception2)
PROPAGATION_REQUIRED 事务的传播级别(以PROPAGATION_开头). 可设置值说明如下:
PROPAGATION_REQUIRED 使用当前事务,如果当前没有事务,则开启新事务
PROPAGATION_SUPPORTS 当前有事务则用,没有事务则不用
PROPAGATION_MANDATORY 当前有事务就用,没有事务则报错(必须要用事务)
PROPAGATION_REQUIRES_NEW 当前有事务则挂起原事务,新启事务(必开新事务)
PROPAGATION_NOT_SUPPORTED 不使用事务,如果当前有事务,则挂起事务
PROPAGATION_NEVER 不能有事务,如果当前有事务,则报错(必须没有事务)
PROPAGATION_NESTED 同 PROPAGATION_REQUIRED
ISOLATION_DEFAULT 事务隔离级别(以ISOLATION_开头)
ISOLATION_DEFAULT 使用数据库默认事务
ISOLATION_READ_UNCOMMITTED
ISOLATION_READ_COMMITTED
ISOLATION_REPEATABLE_READ
ISOLATION_SERIALIZABLE
readOnly
如果设置,则表示只读事务,如果不设置,则表示读来事务。
TIMEOUT_DEFAULT 事务超时设置(timeout_ 开头),单位是秒。 例如 timeout_20, 则表示事务超时时间是20秒。
+Exception 表示遇到该异常时,执行回滚
–Exception 表示遇到该异常时,不执行加滚
transactionManager 是事务管理器,针对不同的持久层,事务都会提供不同的实现。其接口都是org.springframework.transaction.PlatformTransactionManager
XML配置事务方式的优点就是不用改任何代码,希望此份配置详解可以对大家有帮助
发表评论
-
(转)Java几款性能分析工具的对比
2013-11-01 14:26 1035来源:http://www.javaweb.cc/langua ... -
HashMap的遍历
2013-11-01 14:15 8851、新建一个HashMap Map<Integer , ... -
java将汉子转换成汉语拼音
2013-11-01 13:51 930import net.sourceforge.pinyin4j ... -
Spring加载properties文件的两种方式
2013-10-31 10:05 0在spring中可以通过下面的方式将配置文件中的项注入到配置中 ... -
动态加载spring .xml中的bean对象
2013-10-30 15:27 0在java中如何取得spring.xml中加载的bean对象? ... -
(转)Spring mvc+hibernate+freemarker(实战)
2013-10-28 19:40 989http://zz563143188.iteye.com/bl ... -
(转)Java之美[从菜鸟到高手演变]系列之博文阅读导航
2013-10-28 17:00 1734Java之美[从菜鸟到高手演变]系列之博文阅读导航 http: ... -
(转)openssl 制作证书和签名java方法
2013-10-28 15:03 0Win32OpenSSL_Light-0_9_8k.exe ... -
(转)面向接口编程详解
2013-10-25 12:34 5老文章,自己学习。 面向接口编程详解(一) http://w ... -
(转)依赖注入那些事儿
2013-10-25 12:31 658http://www.cnblogs.com/leoo2sk/ ... -
(转)细说业务逻辑
2013-10-25 12:30 556前篇 http://www.cnblogs.com/leoo2 ... -
(转)Java架构师之路:JAVA程序员必看的15本书
2013-10-08 18:24 0作为Java程序员来说,最 ... -
证书解析与转换
2013-09-26 14:34 0爽哥证书生成步骤: 1. ... -
Java获取CPU ID和磁盘ID
2013-09-25 20:18 0原文链接:http://www.rgagnon.com/jav ... -
Java编程之备用程序段
2013-09-25 14:57 0记录一些程序段,供日常备用,持续增加中…… 1. Java中 ... -
(转)Java编程之AOP
2013-09-25 14:45 0链接: http://hw19886200.iteye.com ... -
Java编程之性能优化
2013-09-25 14:28 761最近的机器内存又爆满 ... -
使用axis2传输附件
2013-09-25 10:40 1051服务端Service文件: import java.io. ... -
Java应用程序项目打包成exe文件
2013-09-23 09:16 01.程序打包 首先将程序打成Jar包,打包命 ... -
(转)nginx 总结
2013-09-18 14:27 2162原文链接:http://saiyaren.iteye.com/ ...
相关推荐
### 标题解读:Spring声明式事务配置 Spring框架提供了两种主要类型的事务管理方式:编程式事务管理和声明式事务管理。声明式事务管理通过XML配置或注解的形式定义事务边界,使得业务逻辑与事务控制分离。 ### ...
Spring 编程式事务与声明式事务详解 本文将详细解释 Spring 的编程式事务管理及声明式事务管理,帮助读者理清思路。 事务管理的重要性 事务管理对于企业应用至关重要。它保证了用户的每一次操作都是可靠的,即便...
声明式事务管理是Spring最常用的方式,它将事务管理与业务逻辑解耦,通过AOP(面向切面编程)实现。主要有两种实现方式: - **基于XML的声明式事务管理** 在Spring的配置文件中,通过`<tx:advice>`标签定义事务...
以下是关于Spring声明式事务配置管理的详细说明: 1. **事务管理器配置**: 在`/WEB-INF/applicationContext.xml`文件中,我们需要定义一个事务管理器Bean。通常,对于Hibernate,我们会使用`...
本实例将深入探讨如何在Spring中使用AOP来实现声明式事务配置。 一、Spring AOP基础 AOP允许我们在程序运行时动态地将代码插入到其他对象中,它主要用来处理那些具有横切关注点的问题,如日志、异常处理和事务管理...
Spring 提供了多种方式来配置事务管理,主要分为编程式事务管理和声明式事务管理。下面将详细介绍这五种Spring 事务配置方式。 1. **基于AOP代理的声明式事务** 这是最常见的配置方式,通过AOP代理在方法调用前后...
### Spring 2.0 声明式事务配置详解 #### 一、Spring 2.0 声明式事务概述 随着 Spring 框架的发展,从 Spring 1.x 到 Spring 2.0 版本,声明式事务管理方式有了显著改进。在 Spring 1.x 中,主要通过 AOP 方式实现...
**声明式事务管理**则是基于AOP(面向切面编程)的,通过在XML配置文件或者使用Java注解(@Transactional)来声明哪些方法需要在事务中运行。这种方式使得事务管理与业务逻辑解耦,提高了代码的可读性和可维护性。...
### Spring 2.x 配置详解 #### 关于 Spring 配置 自 Spring 2.0 起,推荐使用基于 XML Schema 的配置方式,这种方式比传统的 DTD 基础配置更为灵活。一个典型的 Spring 2.5 配置文件至少会包含以下结构: ```xml ...
虽然灵活性高,但通常只适用于复杂场景或作为声明式事务的补充。 ### 5. **JTA(Java Transaction API)事务管理** 在分布式系统中,可能需要跨越多个数据源的事务管理。Spring支持JTA事务管理,使用`...
3. 声明式事务管理:利用Spring AOP的特性,Spring支持声明式事务管理,即可以在配置文件或注解中声明事务属性,这使得事务管理更加灵活和方便。 Spring的事务管理还提供了强大的事务传播行为和隔离级别配置,...
编程式事务是通过编写代码来管理事务,声明式事务则是通过配置文件或注解来管理事务。 事务属性 Spring的事务属性是通过TransactionDefinition接口定义的,该接口提供了以下几个方法: * getIsolationLevel():...
总结来说,Spring的事务管理是其强大功能的重要组成部分,通过声明式事务管理,我们可以轻松地在代码中实现事务控制,同时保持代码的简洁性和可维护性。了解和熟练掌握Spring事务管理,对于提升Java企业级应用的稳定...
Spring事务管理主要有两种方式:编程式事务管理和声明式事务管理。编程式事务管理需要在代码中手动调用开始事务、提交事务、回滚事务等方法,而声明式事务管理则是通过配置来定义事务边界,更易于维护和使用。本文...
### Spring的编程式事务管理与声明式事务管理详解 #### 引言 Spring框架作为Java企业级开发的首选,其事务管理模块是实现业务逻辑可靠性和数据一致性的重要组成部分。Spring支持两种事务管理方式:编程式事务管理...