生命不息,编程不止

deniro's thinking

说说在 Spring 中,如何基于 XML 来配置事务

我们大都选择使用声明式(XML 或者注解)来配置事务,因为这种方式对代码的侵入最小。特别是 XML 方式的配置,可以让事务管理配置信息从业务代码中完全移除。 Spring 的声明式事务管理是通过 AOP 实现的。 Spring 会读取事务的声明配置,将事务管理的增强逻辑,动态织入到业务方法的相应连...

2019-04-14 15:03:28

阅读数 106

评论数 0

说说在 Spring 中,如何编程实现事务管理

Spring 为编程式的事务管理,提供了相应的模板类 org.springframework.transaction.support.TransactionTemplate,可以应对一些特殊场合的需要。 TransactionTemplate 是线程安全的,所以可以在多个类中共享 Transac...

2019-04-06 19:24:36

阅读数 149

评论数 0

说说 Spring 事务的传播行为

当我们调用一个基于 Spring 的 Service 接口方法(比如 AccountService#addr() )时,它将运行在 Spring 管理的事务环境中, 这个方法可能会在内部调用其它的 Service 接口方法以共同完成一个完整的业务操作,因此就会发生服务接口方法嵌套调用的场景, 这...

2019-03-24 13:35:09

阅读数 58

评论数 0

说说 Spring 的事务同步管理器

Spring 将 JDBC 的 Connection、Hibernate 的 Session 等访问数据库的连接或者会话对象统称为资源,这些资源在同一时刻是不能多线程共享的 。 为了让 DAO 或 Service 类可以实现单例模式, Spring 的事务同步管理类 org.springfr...

2019-03-24 13:10:59

阅读数 90

评论数 0

说说 Spring 事务管理的实现类

spring 将事务管理委托给底层具体的持久化实现框架去完成,所以 Spring 为不同的持久化实现类,都提供了 PlatformTransactionManager 接口的实现类。 事务 说明 org.springframework.orm.jpa.JpaTransactionM...

2019-03-24 10:25:55

阅读数 87

评论数 0

说说 Spring 的事务管理模型

Spring 在高层次建立了统一的事务抽象以及一致的编程模板 。 Spring 提供了事务模板类 TransactionTemplate。 通过 TransactionTemplate 并配合使用事务回调 TransactionCallback 来指定具体的持久化操作,从而通过编程的方式来实现事...

2019-03-19 11:49:48

阅读数 43

评论数 0

说说在 Spring 中如何使用数据源(DBCP、C3P0、JNDI 等)

在 Spring 中,有以下三种方式来创建数据源: 通过 JNDI 获取应用服务器中的数据源; 在 Spring 容器中配置数据源; 通过代码来创建数据源,这种方式适用于无容器依赖的单元测试。 1 配置数据源 Spring 在第三方依赖包中包含了 2 种数据源的实现包 一个是 Apache ...

2018-10-27 17:07:09

阅读数 258

评论数 0

说说 Spring 的数据访问模板

1 使用 JDBC 进行数据访问 下面是一段典型的使用 JDBC 进行数据访问操作的代码,我们已经尽可能地对代码进行了精简: public void save(User user) throws SQLException { Connection con = null; ...

2018-10-21 16:55:30

阅读数 166

评论数 0

说说 Spring DAO 的异常体系

Spring 提供了一套和实现技术无关的 、 面向 DAO 层语义级别的异常体系,内部通过转换器将不同持久化技术的异常转换成 Spring 的异常,实现统一管理。 1 异常体系 很多正统的 AP中,使用了过多的检查型异常,以致于在使用 API 时,代码中充斥了大量 try/catch 样板式的代码...

2018-09-23 11:29:33

阅读数 519

评论数 2

说说 Spring DAO 的设计思想

DAO (Data Access Object )是访问数据的对象,它不但屏蔽了不同的数据存储介质(数据库、文件或 LDAP 等),也屏蔽了具体的实现技术 。 我们只要为数据访问定义好 DAO 接口,然后使用具体技术来实现 DAO 接口,就可以平滑地切换这些不同的实现技术啦O(∩_∩)O~ 业务层...

2018-09-23 09:34:29

阅读数 88

评论数 0

说说如何在 Spring 框架中使用 SpEL 表达式

在 Spring 框架的 XML 配置方式或者注解配置方式中,我们都可以使用 SpEL 表达式,它们的语法都是 #{表达式}。 1 基于 XML 配置 在 XML 配置中,我们可以通过 SpEL 表达式为 Bean 的属性或构造函数入参注入动态值: <?...

2018-09-15 19:54:17

阅读数 263

评论数 0

说说 Spring 表达式语言(SpEL)中的各种表达式类型

1 文本表达式 文本表达式支持字符串、 日期 、 数字(正数 、 实数及十六进制数) 、 布尔类型及 null。其中的字符表达式可使用单引号来表示,形如:'Deniro'。如果表达式中包含单引号或者双引号字符,那么可以使用转义字符 /。 ExpressionParser parser ...

2018-09-15 15:35:54

阅读数 205

评论数 0

说说 Spring 表达式语言(SpEL)的核心类与用法

Spring 表达式语言 Spring Expression Language(简称 SpEL )是一个支持运行时查询和操作对象图的表达式语言 。 语法类似于 EL 表达式 ,但提供了显式方法调用和基本字符串模板函数等额外特性 。 SpEL 虽然作为 Spring 家族中表达式求值的基础,但却...

2018-09-08 11:14:16

阅读数 805

评论数 0

说说在 Spring AOP 中如何实现类加载期织入(LTW)

我们可以在类加载期通过字节码编辑技术将切面织入目标类,这种方式叫做 LTW(Load Time Weaving)。 AspectJ LTW 使用 Java 5.0 提供的代理功能实现织入工作 。JDK 的代理功能能够让代理器访问到 JVM 的底层部件,借此向 JVM 注册类文件转换器,在类加...

2018-08-24 15:00:55

阅读数 739

评论数 0

说说 Spring AOP 中 @Aspect 的高级用法

1 切点复合运算 支持在切点定义中加入以下运算符进行复合运算: 运算符 说明 && 与运算。 ! 非运算。 || 或运算。 2 切点命名 一般情况下,切点是直接声明在需要增强方法处...

2018-08-19 15:14:58

阅读数 2521

评论数 0

说说 Spring 支持的 AspectJ 切点函数

1 @annotation() 它表示标注了某个注解的所有方法。 假设有一个接口 Cook,它有两个实现类 CookA、CookB: Cook: public interface Cook { /** * 制作食品 */ void make()...

2018-08-12 16:03:47

阅读数 374

评论数 0

说说在 Spring jdbc 中如何实现批量操作(batchUpdate )

创建 SQL 语句。 利用 List 组装出多个 SQL 参数。 利用 SqlParameterSourceUtils 工具生成 batchUpdate 所需要的参数类型。 执行批量操作。 代码如下: //SQL 语句 String sql = ""; ...

2018-07-18 10:42:49

阅读数 1194

评论数 0

说说 Spring 支持的 AspectJ 语法

本文以 AspectJ5.0 为基础。 1 切点表达式 AspectJ5.0 的切点表达式由关键字和操作参数组成。比如 execution(* rent(..)) 中,execution 为关键字,而 * rent(..) 为操作参数。 Spring 支持 9 个 AspectJ 切点表...

2018-06-26 17:38:51

阅读数 74

评论数 0

说说在 Spring 中如何使用 AspectJ 来实现 AOP

AspectJ 是通过注解来描述切点与增强的。 1 开发环境要求 因为要使用注解,所以请确保使用的 Java5.0 及以上版本。 引入 AspectJ 相关类库: <dependency> <group...

2018-06-22 16:02:04

阅读数 49

评论数 0

说说在 Spring 中如何自动创建代理

Spring 提供了自动代理机制,可以让容器自动生成代理,从而把开发人员从繁琐的配置中解脱出来 。 具体是使用 BeanPostProcessor 来实现这项功能。 1 BeanPostProcessor BeanPostProcessor 代理创建器的实现类可以分为 3 类: ...

2018-06-19 16:07:32

阅读数 1012

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭