Spring-事务处理
文章平均质量分 95
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
AbstractRoutingDataSource数据源动态切换、跨库事物失效问题解决方案
系统架构设计、每个企业一个企业库、通过数据源切在平台库、和企业库之间动态切换完成业务操作。1、Spring@Transactional不支持跨数据源事物,Spring 事物控制是基于数据库链接进行的,当数据源切换后,数据库链接切换,事物回滚只能回退,当前持有的链接。2、Spring开启事物后,会将当前数据库及数据库链接资源进行线程绑定,导致数据源切换失效(数据源切换执行后,并未获取到新的数据库链接)。基于InheritableThreadLocal + aop 针对添加了跨库事务注解的方法进行拦截、线程标转载 2022-08-15 14:12:58 · 1488 阅读 · 1 评论 -
透过现象看原理:详解Spring中Bean的this调用导致AOP失效的原因(this指针)
前言在我们使用Spring时,可能有前辈教导过我们,在bean中不要使用this来调用被@Async、@Transactional、@Cacheable等注解标注的方法,this下注解是不生效的。那么大家可曾想过以下问题为何致this调用的方法,注解会不生效 这些注解生效的原理又是什么 如果确实需要调用本类方法,且还需要注解生效,该怎么做? 代理是否可以做到this调用注解就直接生效?通过本文,上面的疑问都可以解决,而且可以学到很多相关原理知识,信息量较大,那么就开始吧现象以@A转载 2021-02-20 18:08:35 · 1003 阅读 · 1 评论 -
Spring事务配置的五种方式
Spring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionMan转载 2012-11-19 15:59:15 · 1482 阅读 · 0 评论 -
Spring中PROPAGATION_REQUIRED的意思?
事务传播行为种类Spring在TransactionDefinition接口中规定了7种类型的事务传播行为,它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播:表1事务传播行为类型事务传播行为类型说明PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一转载 2013-12-05 09:50:10 · 1988 阅读 · 0 评论 -
基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。
基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。我还是喜欢基于Schema风格的Spring事务管理,但也有很多人在用基于@Trasactional注解的事务管理,但在通过基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务是有区别的,我们接下来看看到底有哪些区别。一、基转载 2013-12-05 10:35:18 · 3532 阅读 · 0 评论 -
关于Spring配置中transactionAttributes的意义
各位大虾好,小弟最近在看Spring,有谁能解释一下下边的配置么? class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> PROPAGATION_REQUIRED,-Ex转载 2013-12-05 09:57:05 · 2996 阅读 · 1 评论 -
Spring配置中transactionAttributes的使用方法和作用
最近碰到这个问题,在使用spring提供的JpaTemplate进行查询时,如果数据量超过100 条,查询效率就会明显降低。由于开始时使用JPA内部的双向关联,造成各实体内部关联过多,从而影响所有的操作,因此怀疑是因为JPA的关联关系所致。但 是去掉关联关系后的效果不显著。查找spring的相关配置,发现原来关于“transactionAttributes”有问题。原来的配置如下:转载 2013-12-05 10:00:07 · 1641 阅读 · 0 评论 -
Spring源码分析之——spring 事务管理实现方式 (不太清晰,不明白aop会看不懂)
注意:这里只是分析spring事务的实现方式。也就是spring的事务管理是怎么发生作用的,而不分析具体的实现细节(细节将在下一篇里面分析).转载:http://michael-softtech.iteye.com/blog/813835紧接着上一篇提到的,Spring是通过NameSpaceHandler来解析配置文件中的标签的。下面就已事务的配置为例,讲述一下事务配置转载 2016-05-04 06:31:53 · 2468 阅读 · 0 评论 -
Spring的DriverManagerDataSource与apache的BasicDataSource(转)
情况是这样的。。。2008-3-18 1:08:26 org.apache.tomcat.util.threads.ThreadPool logFull严重: All threads (150) are currently busy, waiting. Increase maxThreads (150) or check the servlet status重新启动服务器之后,转载 2012-12-28 16:10:22 · 1500 阅读 · 0 评论 -
编程式事务管理—PlatformTransactionManager
JDBC的事务管理在Spring2.0下有两种编程式的实现PlatformTransactionManagerTransactionTemplate对于PlatformTransctionManager,通常,不直接使用它,而是使用它的实现类DataSourceTransactionManager。具体用法如下:1. 实例化的时候,需要用个数据源作参数2. 建立事务的定转载 2013-01-04 10:30:26 · 5619 阅读 · 1 评论 -
Spring Transaction详解 - Transaction Propagation模式
相关文档:Spring官方文档,Javadoc相关代码:github在Spring官方文档中只对三种Transaction Propagation模式做了说明:RequiredRequiresNewNested并没有对另外四种做说明:SUPPORTSMANDATORYNOT_SUPPORTEDNEVER转载 2017-07-27 17:43:20 · 1762 阅读 · 0 评论 -
Java与持久相关的锁总结
本文总结Java中有关数据库保存持久数据的锁机制,不只是纯粹数据库自身的锁,本文主要就Java持久层三个技术数据库、JPA和Hibernate的锁应用进行了总结。 在并发理论中,锁是用于保护可变的共享数据,以保证数据的完整性,大多数应用程序都是依赖于数据库本身提供的隐藏在数据库机制内的锁技术,很多初学者可能都没有意识到。 将整个系统的锁职责委托给数据库系统,虽然可以简化应用程序转载 2018-02-21 20:04:05 · 784 阅读 · 0 评论 -
spring jpa 行级锁的实现
http://blog.csdn.net/fengyuxue11011/article/details/47039765最近要做一个新项目,需要借助mysql的行级锁机制,又由于是第一次使用jpa去实现行级锁,所以遇到了一丢丢问题,昨天晚上用了1个多小时解决了。。分享下。。-------------------------------------------------转载 2018-02-21 20:00:59 · 2433 阅读 · 0 评论 -
使用 @Lock 注解实现Spring JAP锁
http://blog.csdn.net/terry_long/article/details/54291455JPA 2.0增加了6种新的锁模式,其中两个是乐观锁。JPA 2.0也允许悲观锁,并增加了3种悲观锁,第6种锁模式是无锁。 下面是新增的两个乐观锁模式: 1、OPTIMISTIC:它和READ锁模式相同,JPA 2.0仍然支持R转载 2018-02-21 19:29:54 · 10570 阅读 · 0 评论 -
Spring中如何配置Hibernate事务
为了保证数据的一致性,在编程的时候往往需要引入事务这个概念。事务有4个特性:原子性、一致性、隔离性、持久性。 事务的种类有两种:编程式事务和声明式事务。编程式事务就是将事务处理放在程序中,而声明式事务则是通过配置文件或者注解进行操作。 在Spring中有声明式事务的概念,通过和Hibernate类似框架的集成,可以很好的完成声明式事务。转载 2014-11-21 22:24:42 · 1240 阅读 · 0 评论 -
Spring事务属性详解
Spring,是一个Java开源框架,是为了解决企业应用程序开发复杂性由Rod Johnson创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用转载 2014-02-24 16:38:20 · 5986 阅读 · 0 评论 -
JTA之spring 整理
JTA -Java Transaction APIJTA Transaction是指由J2EE Transaction manager去管理的事务。其最大的特点是调用UserTransaction接口的begin,commit和rollback方法来完成事务范围的界定,事务的提交和回滚。通常说到事务就离不开事务几个特性:原子性:事务的必需提交或者回滚其中的一项操作失败都会引起事务的回滚.一致性转载 2014-02-24 16:33:49 · 1563 阅读 · 0 评论 -
Spring 声明事务中transactionAttributes属性 + - Exception 实现逻辑
下面是一段典型的Spring 声明事务的配置:查看文本打印?bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> property name="transactionManager">转载 2013-12-06 09:30:30 · 3588 阅读 · 0 评论 -
HibernateTemplate 自动事务
使用HibernateTemplate时,不显示的声明事务管理,照样能对数据库做CURD。 这是因为在没有声明事务时,HibernateTemplate是默认自动提交事务的。 因此如果在业务代码中,只涉及到一次数据库操作时默认自动事务提交已经足够,如果多次数据库操作则需要做事务声明。转载 2013-12-05 10:54:10 · 4101 阅读 · 1 评论 -
Spring的事务 之 9.3 编程式事务 ——跟我学spring3
9.3 编程式事务9.3.1 编程式事务概述 所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。 Spring框架提供一致的事务抽象,因此对于JDBC还是JTA事务都是采用相同的API进行编程。 java代码:查看复制到剪贴板打印Connection conn = null转载 2013-12-05 15:50:46 · 1993 阅读 · 0 评论 -
Spring中的编程式事务与声明式事务
编程式事务:使用PlatformTransactionManager及TransactionTemplate ,其中PlatformTransactionManager可在xml文件中配置1.声明数据源2.声明一个事务管理类,例如:DataSourceTransactionManager,HibernateTransactionManger,JTATransactionManager等原创 2012-12-19 15:35:57 · 2816 阅读 · 0 评论 -
Spring配置事务中的 transactionAttributes 各属性含义及XML配置
transactionAttributes 属性:PROPAGATION事务传播行为类型说明PROPAGATION_REQUIRED如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。PROPAGATION_SUPPORTS原创 2013-12-06 09:50:22 · 20770 阅读 · 2 评论 -
Spring的事务管理入门:编程式事务管理(TransactionTemplate)!!!
Spring可以支持编程式事务和声明式事务。Spring使用事务管理器,每个不同平台的事务管理器都实现了接口:PlatformTransactionManager此接口是事务管理的核心,提供了三个需要实现的函数:[java] view plaincopyprint?commit(TransactionStatus status转载 2012-11-19 14:33:12 · 2564 阅读 · 0 评论 -
spring3.0事务的多数据源的annotation-driven用法
一.annotation-driven如何正确使用事务管理器(本文仅基于3.0+版本作为测试)假定spring 容器中定义了两个事务管理器:transactionManagerX,transactionManagerY,分管两个数据源datasourceX和datasourceY.(spring容器中的定义顺序如上)有如下应用代码:public interfac转载 2012-10-25 14:35:54 · 3972 阅读 · 2 评论 -
Spring的事务 之 9.4 声明式事务 ——跟我学spring3
9.4 声明式事务9.4.1 声明式事务概述 从上节编程式实现事务管理可以深刻体会到编程式事务的痛苦,即使通过代理配置方式也是不小的工作量。 本节将介绍声明式事务支持,使用该方式后最大的获益是简单,事务管理不再是令人痛苦的,而且此方式属于无侵入式,对业务逻辑实现无影响。 接下来先来看看声明式事务如何实现吧。9.4.2转载 2013-12-05 15:51:24 · 2354 阅读 · 0 评论