Spring 注解@Transactional】的更多相关文章

引子 今天下班后,以前同事小胖问我Spring  Service类中的注解@Transactional readOnly=true的作用.做为他眼中的高人,我自然要装下A-C.居然想都没有想就说是注解事务控制,然后给他扯了一通数据库的隔离级别,什么read uncommit之类的,说readOnly是隔离级别最低的,在spring查询方法里用,性能最高. ps:之前的项目多数基于xml,亲自用annotation的机会很少,都是小弟们在实战. 示例: @Component("channelSer…
  需求:系统中有一个自增的合同编号,在满足并发情况下,生成的合同编号是自增的. 测试工具:Apache Jmeter 实现方法: 创建一个数据库表.编号最大值记录表 表结构类似 CREATE TABLE `project_number_record` ( `id` varchar(64) NOT NULL, `record_year` date DEFAULT NULL COMMENT '记录年份', `max_value` int(11) DEFAULT NULL COMMENT '年份最大…
Spring事务的传播行为 在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务. Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚.这个例外是unchecked 如果遇到checked意外就不回滚. 如何改变默认规则: 1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exception.class) 2 让unchecke…
在分析深入分析@Transactional的使用之前,我们先回顾一下事务的一些基本内容. 事务的基本概念 先来回顾一下事务的基本概念和特性.数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行.事务,就必须具备ACID特性,即原子性(Atomicity).一致性(Consistency).隔离性(Isolation)和持久性(Durability). 编程式事务与声明式事务 Spring 与Hibernate的整合实…
一.@Transactional所需要的jar包 1.aopalliance.jar  这个包是AOP联盟的API包,里面包含了针对面向切面的接口.(通常Spring等其它具备动态织入功能的框架依赖此包) 2.aspectjrt.jar     处理事务和AOP所需的包 3.aspectjweaver.jar        处理事务和AOP所需的包 4.cglib-nodep.jar     spring中自动代理所需jar包 二.使用@Transactional 1.@Transactiona…
这里面有几点需要大家留意:A. 一个功能是否要事务,必须纳入设计.编码考虑.不能仅仅完成了基本功能就ok.B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常.测试回滚),确保事务生效.C. 以下列了事务使用过程的注意事项,请大家留意.1. 不要在接口上声明@Transactional ,而要在具体类的方法上使用 @Transactional 注解,否则注解可能无效.2.不要图省事,将@Transactional放置在类级的声明中,放在类声明,会使得所有方法都有事务.故@Transa…
@Transactional    用于service实现类,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务.(未完待续)…
概述 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性.Spring Framework对事务管理提供了一致的抽象,其特点如下: 为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate, JPA(Java Persistence API和JDO(Java Data Objects) 支持声明式事务管理,特别是基于注解的声明式事务管理,简单易用 提供比其他事务API如JTA更简单的编程式事务管理…
声明:本文是自己在学习spring注解事务处理源代码时所留下的笔记: 难免有错误,敬请读者谅解!!! 1.事务注解标签 <tx:annotation-driven /> 2.tx 命名空间解析器 事务tx命名空间解析器TxNamespaceHandler org.springframework.transaction.config.TxNamespaceHandler#init 3.AnnotationDrivenBeanDefinitionParser#parse 解析事务标签 (1).以下…
转自一人浅醉-博客园: 事务隔离级别 隔离级别是指若干个并发的事务之间的隔离程度.TransactionDefinition 接口中定义了五个表示隔离级别的常量: TransactionDefinition.ISOLATION_DEFAULT:这是默认值,表示使用底层数据库的默认隔离级别.对大部分数据库而言,通常这值就是TransactionDefinition.ISOLATION_READ_COMMITTED. TransactionDefinition.ISOLATION_READ_UNCO…