摘要: 写在前面 适配模式的定义如下: 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配儿无法在一起工作的两个类能够在一起工作。 看下适配器模式的类图: spring中的适配器模式 在Spring的Aop中,使用的Advice(通知)来增强被代理类的功能。Spring实现这一AOP功能的 阅读全文
posted @ 2017-08-15 10:50 qtyy 阅读(1949) 评论(0) 推荐(0) 编辑
摘要: 写在前面 optimize是ProxyConfig的属性。意思为 是否对生产代理策略使用优化。 一个例子 Spring AOP 提供一个可根据Bean名称来自动生产代理的工具,它就是BeanNameAutoProxyCreator。它的配置是这样: 以上使用BeanNameAutoProxyCrea 阅读全文
posted @ 2017-08-15 10:34 qtyy 阅读(1568) 评论(0) 推荐(1) 编辑
摘要: 写在前面 expose-proxy。为是否暴露当前代理对象为ThreadLocal模式。 SpringAOP对于最外层的函数只拦截public方法,不拦截protected和private方法(后续讲解),另外不会对最外层的public方法内部调用的其他方法也进行拦截,即只停留于代理对象所调用的方法 阅读全文
posted @ 2017-08-14 11:06 qtyy 阅读(3742) 评论(2) 推荐(1) 编辑
摘要: 写在前面 这篇文章里面就要说说Spring自己的AOP,搞清楚哪种方式是Spring自己实现的AOP,哪种方式是Spring引入aspectj的AOP。 简单例子 Spring自己的AOP实现在于ProxyFactoryBean。先看下使用案例(仍和之前的案例是一样的):接口AService、实现类 阅读全文
posted @ 2017-08-13 11:56 qtyy 阅读(2274) 评论(0) 推荐(0) 编辑
摘要: 写在前面 Spring AOP中Pointcut,dvice 和 Advisor三个概念 1)切入点 Pointcut 在介绍Pointcut之前,有必要先介绍 Join Point(连接点)概念。 连接点:程序运行中的某个阶段点,比如方法的调用、异常的抛出等。比如方法doSome();Pointc 阅读全文
posted @ 2017-08-11 16:35 qtyy 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 写在前面 前面介绍了Spring AOP的JDK动态代理的过程,这一篇文章就要介绍下Spring AOP的Cglib代理过程。 CGLib全称为Code Generation Library,是一个强大的高性能,高质量的代码生成类库,可以在运行期扩展Java类与实现Java接口,CGLib封装了as 阅读全文
posted @ 2017-07-14 09:01 qtyy 阅读(973) 评论(0) 推荐(0) 编辑
摘要: 写在前面 时间断断续续,这次写一点关于spring aop拦截器链的记载。至于如何获取spring的拦截器,前一篇博客已经写的很清楚(spring aop(2) Spring AOP的JDK动态代理) 获取拦截器链 ReflectiveMethodInvocation 的结构 看一个 MethodI 阅读全文
posted @ 2017-07-10 16:45 qtyy 阅读(1114) 评论(0) 推荐(0) 编辑
摘要: 写在前面 spring 事务是springAOP 的一个实现。我们以分析spring的事务,来分析spring的AOP实现。 基本知识 如果目标方法被spring的事务声明,则执行该目标方法的对象就会是spring动态生成的代理对象。如果目标方法的类有接口实现,那么产生的是jdk的动态代理,反之则是 阅读全文
posted @ 2017-06-22 10:54 qtyy 阅读(814) 评论(0) 推荐(0) 编辑
摘要: 写在前面 最近看spring的源代码。发现之前没有完全弄懂(工厂方法、抽象工厂)的区别。 spring中代理对象的产生,是通过代理工厂(工厂模式),首先spring中的代理是使用jdk或者cglib的代理,只要看目标类是否实现接口。 这里典型应用了工厂模式 工厂接口: 目标产品: AopProxy 阅读全文
posted @ 2017-06-19 20:59 qtyy 阅读(810) 评论(0) 推荐(0) 编辑
摘要: 写在前面 由于spring的事务系列,可以带出spring的aop。spring的事务只是spring的一个具体实现 名词解释 常见的aop AspectJ 、JBossAOP、SpringAOP aspectj和jboss AOP对于上述约定进行了具体的实现,独立与其他 Spring Aop:Sp 阅读全文
posted @ 2017-05-18 16:28 qtyy 阅读(829) 评论(0) 推荐(0) 编辑
摘要: 1 写在前面 上一篇我们了解到spring的事务的体系。这里我们将结合上篇讲spring事务的配置 2 Spring的三种事务配置形式 2.1 使用TransactionProxyFactoryBean 案例分析(上面有三大配置): 事务管理器transactionManager 事务配置的提供者t 阅读全文
posted @ 2017-05-03 22:59 qtyy 阅读(783) 评论(0) 推荐(0) 编辑
摘要: 1.写在前面 事务的模型为3中: 本地事务模式。 编程事务模式。 声明事务模式。 例子1:本地事务模式 案例2:编程事务模式 案例3:声明事务模式 我认为他们各自的特点在于:谁在管理着事务的提交和回滚等操作? 这里有三个角色:数据库、开发人员、spring(等第三方) 对于案例1:开发人员不用知道事 阅读全文
posted @ 2017-05-03 21:39 qtyy 阅读(3031) 评论(0) 推荐(1) 编辑
摘要: 写在前面 TransactionStatus表示一个具体的事务状态(这里应用到了Java的一个多继承,接口允许多继承) TransactionStatus它继承了SavepointManager接口,SavepointManager是对事务中上述保存点功能的封装(Spring利用保存点功能实现了事务 阅读全文
posted @ 2017-04-25 09:31 qtyy 阅读(3080) 评论(0) 推荐(0) 编辑
摘要: 写在前面 由于实现事务功能的方式各不相同,Spring进行了统一的抽象,形成了PlatformTransactionManager事务管理器顶级接口(平台事务管理器),事务的提交、回滚等操作全部交给它来实现 先来看下三大接口 PlatformTransactionManager : 事务管理器 Tr 阅读全文
posted @ 2017-04-25 09:14 qtyy 阅读(1498) 评论(0) 推荐(0) 编辑
摘要: 写在前面 事务属性通过TransactionDefinition接口实现定义,主要有事务隔离级别、事务传播行为、事务超时时间、事务是否只读。 TransactionAttribute TransactionAttribute是TransactionDefinition的实现接口 获取Transact 阅读全文
posted @ 2017-04-24 17:40 qtyy 阅读(1704) 评论(0) 推荐(1) 编辑
摘要: 写在前面: 先了解一下spring的事务。分为分明式事务管理和注解式事务管理,对于前期的事务,spring会通过扫描拦截对于事务的方法进行增强(以后讲解)。 若果目标方法存在事务,spring产出的bean会是一个代理对象(cglib或者jdk)。 本问讨论的是spring拦截到事务,对于事务的增强 阅读全文
posted @ 2017-04-20 18:08 qtyy 阅读(23103) 评论(1) 推荐(7) 编辑
摘要: 写在前面 接口:MyBatis的事务Transaction的接口有一下实现类 JdbcTransaction 由jdbc管理的事务(即利用Connection对象完成对事务的提交(commit())、回滚(rollback())、关闭(close())等) ManagedTransaction 由容 阅读全文
posted @ 2017-04-13 17:11 qtyy 阅读(1056) 评论(0) 推荐(0) 编辑
摘要: 写在前面 MyBatis 提供查询缓存,用于减轻数据库压力,提高数据库性能。 MyBatis缓存分为一级缓存和二级缓存。 通过对于Executor 的设计。也可以发现MyBatis的缓存机制(采用模板方法模式+装饰设计模式) Executor BaseExecutor SimpleExecuor B 阅读全文
posted @ 2017-04-13 10:29 qtyy 阅读(474) 评论(0) 推荐(0) 编辑
摘要: 写在前面 通过上一偏文章,我们知道:mybatis 的插件开发,主要是集中在Executor(执行器),ParameterHandler(参数处理器),ResultSetHandler(结果集处理器),StatementHandler( 语句处理器)。可以称作myBatis核心的四大金刚 我们知道了 阅读全文
posted @ 2017-04-09 12:41 qtyy 阅读(487) 评论(0) 推荐(0) 编辑
摘要: 写在前面 MyBatsi 的拦截器模式是基于代理的代理模式。并且myBatis 的插件开发也是以拦截器的形式集成到myBatis 当中。 MyBatis 的拦截器已经插件是在org.apache.ibatis.plugin包下面。 MyBatis拦截器可以拦截的类,Executor(执行器),Par 阅读全文
posted @ 2017-04-07 17:12 qtyy 阅读(780) 评论(0) 推荐(0) 编辑