SPRING
LUCAS-LJ
这个作者很懒,什么都没留下…
展开
-
SPRING概述
概述Spring最主要的思想就是IoC(Inversionof Control,控制反转),或者成为DI(Dependency Injection,依赖注入)Spring有七个部分组成,结构图解如下:基本配置[html] view plaincopyprint?xml version="1.0" enc转载 2015-10-21 14:43:59 · 343 阅读 · 0 评论 -
脱离 Spring 实现复杂嵌套事务,之十(实现篇)
本文是实现 Spring 的事务控制>系列文章中一篇。本文假设读者已经阅读并理解《实现 Spring 的事务控制,之九(整合七种传播行为)》。其实本文大多数时间是在贴代码。 事务控制的完整代码位于:http://git.oschina.net/zycgit/hasor,DB模块中。 在开始实现事务管理器之前,我们需要知道。这个系统中都有那些元素? 数据库连接转载 2016-04-07 19:21:53 · 734 阅读 · 0 评论 -
脱离 Spring 实现复杂嵌套事务,之九(整合七种传播行为)
工作流程详解 如果您对本文每一次都提供给您的工作原理图还记忆犹新的话,下面这张图就是综合了上述所有事务控制行为之后的原理图。下一篇文章(实现篇),会根据这张原理图来告诉大家如何实现 Spring 那样的事务管理器。 在开始工作流程讲解之前先对下面图中的一些特殊地方进行说明: 1.“挂起当前事务”和“获取连接”是属于不同的工作但是成对出现的。在实现的时候它们也会被捏转载 2016-04-07 19:21:13 · 489 阅读 · 0 评论 -
脱离 Spring 实现复杂嵌套事务,之八(MANDATORY - 要求存在事务)
PROPAGATION_MANDATORY(要求不存在事务) 定义: 如果当前没有事务存在,就以非事务方式执行;如果有,就抛出异常。解释: 解释 MANDATORY 行为是最好解释的行为之一。MANDATORY 强调了必须要有事务。这个行为与 NEVER行为工作方式一样,不同的是所判断的情况却正好是相反的。MANDATORY 行为下当前连接不具备事务,会抛出异常,这转载 2016-04-07 19:20:18 · 1406 阅读 · 0 评论 -
脱离 Spring 实现复杂嵌套事务,之七(NEVER - 排除事务)
PROPAGATION_NEVER(排除事务) 定义: 如果当前没有事务存在,就以非事务方式执行;如果有,就抛出异常。解释: 解释 NEVER 行为是最好解释的行为之一。NEVER 强调了非事务。一旦发现有事务存在,往下连进行都不进行,直接抛出异常。至于工作原理我想就不用多介绍了把。工作原理转载 2016-04-07 19:19:46 · 836 阅读 · 0 评论 -
脱离 Spring 实现复杂嵌套事务,之六(NOT_SUPPORTED - 非事务方式)
PROPAGATION_NOT_SUPPORTED (非事务方式) 定义: 是指如果存在事务则将这个事务挂起,并使用新的数据库连接。新的数据库连接不使用事务。 解释: NOT_SUPPORTED 行为是 Spring 为我们带来的一种特殊的事务控制行为。在这种行为下它保证了当前对数据库的操作是相当于 autoCommit 值为 true 。 我们回顾第转载 2016-04-07 19:19:11 · 10281 阅读 · 0 评论 -
脱离 Spring 实现复杂嵌套事务,之五(SUPPORTS - 跟随环境)
PROPAGATION_SUPPORTS(跟随环境) 定义: 是指 Spring 容器中如果当前没有事务存在,就以非事务方式执行;如果有就使用当前事务。 解释: SUPPORTS 行为是 Spring 事务传播属性中最简单的一种行为。SUPPORTS 行为本质上强调了“不作为”。如下图: 似乎我不需要多解释这张图后面的工作原理,大家只要记得。无论转载 2016-04-07 19:18:33 · 991 阅读 · 0 评论 -
脱离 Spring 实现复杂嵌套事务,之四(NESTED - 嵌套事务)
PROPAGATION_NESTED(嵌套事务) 定义: 在当前事务上开启一个子事务(Savepoint),如果递交主事务。那么连同子事务一同递交。如果递交子事务则保存点之前的所有事务都会被递交。 解释: 所谓嵌套事务,指的就是 NESTED 行为。这一点大家要格外注意。 这是由于“嵌套事务”这个词在 Spring 之后具备了多重含义。一种是指 Spri转载 2016-04-07 19:17:59 · 2879 阅读 · 0 评论 -
脱离 Spring 实现复杂嵌套事务,之三(REQUIRES_NEW - 独立事务)
RROPAGATION_REQUIRES_NEW(独立事务) 定义: 如果当前存在事务则挂起当前事务,并开启一个全新的事务。新事务与已存在的事务之间彼此没有关系。 解释: REQUIRES_NEW 行为强调了独立性。它保证了每个事务状态管理范围内锁使用的数据库连接是彼此不一样的。例如独立事务会满足“A事务中存在B事务,当B事务递交的时候不影响A事务。A,B两个事务之转载 2016-04-07 19:17:22 · 5541 阅读 · 0 评论 -
脱离 Spring 实现复杂嵌套事务,之二(REQUIRED - 加入已有事务)
PROPAGATION_REQUIRED(加入已有事务) 定义: 尝试加入已经存在的事务中,如果没有则开启一个新的事务。解释: 解释 REQUIRED 行为并不困难。它是指如果当前连接中如果已经开启了数据库事务,并且有程序在控制这个事务。那么在处理 REQUIRED 行为时将会忽略 commit/rollback 操作,这是加入已有事务的特征。时转载 2016-04-07 19:16:13 · 905 阅读 · 0 评论 -
脱离 Spring 实现复杂嵌套事务,之一(必要的概念)
目录[-]Spring 提供的几种事务控制事务管理器API接口约定条件数据库连接可能存在的情况理解“new”状态 写这篇博文的目的首先是与大家分享一下如何用更轻量化的办法去实现 Spring 那种完善的事务控制。 为什么需要嵌套事务? 我们知道,数据库事务是为了保证数据库操作原子性而设计的一种解决办法。例如执行两条 update 当第二条执行失败时候顺便将前面转载 2016-04-07 19:15:07 · 761 阅读 · 0 评论 -
ApplicationContextAware
Spring中提供一些Aware相关接口,像是BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,实例这些 Aware接口的Bean在被初始之后,可以取得一些相对应的资源,例如实例BeanFactoryAware的Bean在初始后,Spring容器将会注入BeanFactory的实例原创 2015-09-24 15:53:39 · 340 阅读 · 0 评论 -
Spring事物回滚
使用spring难免要用到spring的事务管理,要用事务管理又会很自然的选择声明式的事务管理,在spring的文档中说道,spring声明式事务管理默认对非检查型异常和运行时异常进行事务回滚,而对检查型异常则不进行回滚操作。那么什么是检查型异常什么又是非检查型异常呢?最简单的判断点有两个:1.继承自runtimeexception或error的是非检查型异常,而继承自exceptio转载 2016-05-25 12:12:10 · 578 阅读 · 0 评论