代理的概念:简单的理解就是通过为某一个对象创建一个代理对象,我们不直接引用原本的对象,而是由创建的代理对象来控制对原对象的引用。动态代理:是指在程序运行时由Java反射机制动态生成,无需手动编写代码。动态代理不仅简化了编程工作,而且提高了软件系统的可扩展性,因为Java反射机制可以生成任意类型的动态...
分类:
编程语言 时间:
2015-03-09 23:40:26
阅读次数:
274
Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理、CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理。JDK动态代理:使用java.lang.reflect.Proxy动态代理实现,即提取目标对象的接口,然后对接口创建AOP代理。CGLIB代理:CGLIB代...
分类:
编程语言 时间:
2015-03-05 12:13:50
阅读次数:
311
Java中自带的动态代理的类必须要实现一个接口,而且据说使用反射的效率也并不是很高。于是CGLIB就诞生了。
使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生成框架,使用字节码技术生成代理类,理论上比使用Java反射效率要高。
通过测试,Java中自带的动态代理的执行效率比CGLIB要高。...
分类:
编程语言 时间:
2015-02-11 10:55:50
阅读次数:
586
动态代理技术是整个java技术系统中非常重要的一环,它是我们能够深入学习java框架的基础,是深入了解Spring等框架时要掌握的基础知识之一。
Java中自带的动态代理的类必须要实现一个接口,也就是说只能对该类所实现接口中定义的方法进行代理,这在实际编程中具有一定的局限性,而且使用反射的效率也并不是很高。于是CGLIB就诞生了。
使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而...
分类:
编程语言 时间:
2015-02-10 15:25:44
阅读次数:
212
public interface AnimalInterface { public void cry();}public class AnimalImpl implements AnimalInterface { public void cry() { // TODO Au...
分类:
编程语言 时间:
2015-01-24 13:04:53
阅读次数:
271
JDK的动态代理,经常被用来动态地创建对象的代理。JDK的动态代理用起来非常简单,但是有一个限制,就是使用动态代理的对象必须实现一个或多个接口。如果想代理没有实现接口,还可以使用cglib包来完成代理。 cglib的底层通过使用一个小而快的字节码处理框架ASM,来转换字节码并生成新的代理类。所...
分类:
其他好文 时间:
2015-01-22 00:04:40
阅读次数:
171
转自:http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.htmlJAVA的动态代理代理模式代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消...
分类:
编程语言 时间:
2015-01-20 23:32:05
阅读次数:
326
一、动态代理概述:
与静态代理对照(关于静态代理的介绍 可以阅读上一篇:JAVA设计模式之 代理模式【Proxy Pattern】),
动态代理类的字节码是在程序运行时由Java反射机制动态生成。
注意:
1、AspectJ是采用编译时生成AOP代理类,具有更好的性能,但是需要使用特定的编译器进行处理
2、Spring AOP...
分类:
编程语言 时间:
2015-01-19 23:38:43
阅读次数:
438
1、需要的包:spring的包,还需要 aspectjweaver.jar,aopalliance.jar ,asm.jar 和cglib.jar 。
2、Aop的实现方式:Spring 接口方式,schema配置方式和注解的三种方式
3、概念
1)切面(aspect):用来切插业务方法的类。
2)连接点(joinpoint):是切面类和业务类的连接点,其实就是封装了业务方法的一些基本属性,作为通知的参数来解析。
3)通知(advice):在切面类中,声明对业务方法做额外处理的方法。
4)切入点(po...
分类:
编程语言 时间:
2015-01-17 15:18:20
阅读次数:
334
hibernate 需要的jar包1)hibernate3.jar: Hibernate的核心库,没有什么可说的,必须使用的jar包2)cglib-asm.jar: CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包3)dom4j.jar: dom4j是...
分类:
编程语言 时间:
2015-01-17 06:22:55
阅读次数:
184