Spring 框架第二天 AOP切面编程 今天重点内容: 1、 什么是AOP ? AOP实现原理是怎样的? AOP相关术语 2、 AOP底层实现 (了解) JDK动态代理、 Cglib动态代理 3、 传统Spring AOP 编程 (了解实现,掌握使用 ) 4、 基于AspectJ 框架,实现spr ...
分类:
编程语言 时间:
2016-07-10 21:13:19
阅读次数:
263
下载Spring2.5.6的地址:http://www.springframework.org站点。
将spring.jar,cglib,dom4j,jakarta-commons,log4j复制到项目的lib目录下,另外spring.jar还要放置到classpath环境变量中。
public class SpringTest{
public static void main(St...
分类:
编程语言 时间:
2016-07-10 18:43:46
阅读次数:
207
原文地址:http://www.iteye.com/topic/799827 背景 前段时间在工作中,包括一些代码阅读过程中,spring aop经常性的会看到cglib中的相关内容,包括BeanCopier,BulkBean,Enancher等内容,以前虽大致知道一些内容,原理是通过bytecod ...
分类:
其他好文 时间:
2016-07-08 18:02:25
阅读次数:
750
EasyMock可以满足单元测试中的大部分需求,但是由于动态代理是使用了面向对象的继承和多态特性,JDK自身的动态代理只针对接口进行代理,其本质是为接口生成一个实现类,而CGLIB可以针对类进行代理,其本质是将类自身作为基类。 如果遇到了静态、final类型的类和方法,以及私有方法,EasyMock ...
分类:
其他好文 时间:
2016-07-07 19:43:57
阅读次数:
264
Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理、CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理。
JDK动态代理:使用java.lang.reflect.Proxy动态代理实现,即提取目标对象的接口,然后对接口创建AOP代理。
CGLIB代理:CGLIB代理不仅能进行接口代理,也能进行类代理,CGLIB代理需要注意以下问题:
不能通...
分类:
编程语言 时间:
2016-07-06 15:07:26
阅读次数:
292
spring 实现AOP是依赖JDK动态代理和CGLIB代理实现的。以下是JDK动态代理和CGLIB代理简单介绍 JDK动态代理:其代理对象必须是某个接口的实现,它是通过在运行期间创建一个接口的实现类来完成对目标对象的代理。 CGLIB代理:实现原理类似于JDK动态代理,只是它在运行期间生成的代理对 ...
分类:
编程语言 时间:
2016-06-30 12:29:26
阅读次数:
170
Hibernate 的延迟加载(lazy load)本质上就是代理模式的应用,我们在过去的岁月里就经常通过代理模式来降低系统的内存开销、提升应用的运行性能。Hibernate 充分利用了代理模式的这种优势,并结合了 Javassist 或 CGLIB 来动态地生成代理对象,这更加增加了代理模式的灵活性,Hibernate 给这种用法一个新名称:延迟加载。无论怎样,充分分析、了解这些开源框架的实现可以更好的感受经典设计模式的优势所在。...
分类:
编程语言 时间:
2016-06-29 08:57:10
阅读次数:
230
一、为什么需要代理模式 假设需实现一个计算的类Math、完成加、减、乘、除功能,如下所示: 现在需求发生了变化,要求项目中所有的类在执行方法时输出执行耗时。最直接的办法是修改源代码,如下所示: 测试运行: 运行结果: 缺点: 1、工作量特别大,如果项目中有多个类,多个方法,则要修改多次。 2、违背了 ...
分类:
编程语言 时间:
2016-06-28 16:59:18
阅读次数:
356
class文件简介及加载
Java编译器编译好Java文件之后,产生.class 文件在磁盘中。这种class文件是二进制文件,内容是只有JVM虚拟机能够识别的机器码。JVM虚拟机读取字节码文件,取出二进制数据,加载到内存中,解析.class 文件内的信息,生成对应的 Class对象:
class字节码文件是根据JVM虚拟机规范中规定的...
分类:
编程语言 时间:
2016-06-24 16:07:10
阅读次数:
922
AOP的概述
什么是AOP
AOP底层原理
Spring的AOP代理
AOP的术语
AOP的底层实现
CGLIB动态代理
代理知识总结
Spring中的AOP
Spring的传统AOP
Spring中的通知(增强类型)
Spring中的切面类型
Spring的AOP的开发
自动代理
使用AspectJ实现AOP
AspectJ表达式
AspectJ的通知类型
基于注解方式配置切面
基于XML配置切面...
分类:
编程语言 时间:
2016-06-23 17:22:53
阅读次数:
360