【Java】 1. 容器 1)队列(queue): 若Blocking:阻塞put/take offer/peek poll 异常element/remove a. PriorityQueue:comparator 堆排序 b. Deque:双向队列 linkedList addFirst() c. ...
分类:
其他好文 时间:
2018-09-12 20:01:44
阅读次数:
135
前言 最近一直在看Spring源码,其实我之前一直知道AOP的基本实现原理: 如果针对接口做代理默认使用的是JDK自带的Proxy+InvocationHandler 如果针对类做代理使用的是Cglib 即使针对接口做代理,也可以将代理方式配置成走Cglib的 之后要看AOP源码了,Proxy+In ...
分类:
其他好文 时间:
2018-09-11 22:34:17
阅读次数:
260
前言 jdk中的动态代理通过反射类Proxy和InvocationHandler回调接口实现,要求委托类必须实现一个接口,只能对该类接口中定义的方法实现代理,这在实际编程中有一定的局限性。 cglib实现 使用cglib[Code Generation Library]实现动态代理,并不要求委托类必 ...
分类:
其他好文 时间:
2018-09-11 22:34:01
阅读次数:
266
(很早就接触了动态代理,出于不知道这种模式的实用意义到底在哪里,所以每次简单了解完代理的过程不久也忘了。但是知道了mybatis就是利用动态代理来生成mapper实例,借此再总结一次) JDK动态代理只能针对接口(所以声明Mapper接口),如果要针对普通类则可以考虑CGLib的实现。 平时使用my ...
分类:
其他好文 时间:
2018-09-08 16:48:17
阅读次数:
134
1、被代理类Person.java 2、切面类MyAdvice.java 3、代理工厂类MyBeanFactory.java 4、测试类Test.java ...
分类:
编程语言 时间:
2018-08-25 20:36:16
阅读次数:
222
面向大海,春暖花开 来自网友的解析: Enhancer可能是CGLIB中最常用的一个类,和Java1.3动态代理中引入的Proxy类差不多(如果对Proxy不懂,可以参考这里)。和Proxy不同的是,Enhancer既能够代理普通的class,也能够代理接口。Enhancer创建一个被代理对象的子类 ...
分类:
其他好文 时间:
2018-08-20 21:53:14
阅读次数:
451
本文主要讲解静态代理,动态代理的原理,以及JDK动态代理,cglib动态代理,最后带大家手写jdk动态代理源码!含Git完整醒项目地址。 ...
分类:
其他好文 时间:
2018-08-19 11:51:24
阅读次数:
147
SpringAop实现为动态代理进行实现的,实现方式有2种,JDK动态代理和CGlib动态代理先写一个AOP的案列加以说明配置文件代码为: 其中增强类Logger的实现为: 被曾强类UserDaoImpl和被曾强类接口的实现为: 测试方法代码: 运行结果: 可以看出对目标方法进行了增强。 下面开始从 ...
分类:
编程语言 时间:
2018-08-15 18:35:38
阅读次数:
176
JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而 ...
分类:
编程语言 时间:
2018-08-15 14:57:01
阅读次数:
155
AOP:是一种面向切面的编程范式,是一种编程思想,旨在通过分离横切关注点,提高模块化,可以跨越对象关注点。Aop的典型应用即spring的事务机制,日志记录。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。主要功能是:日志 ...
分类:
编程语言 时间:
2018-08-09 18:29:21
阅读次数:
206