记录一下自己对动态代理和AOP的理解
代理模式是为其他对象提供一个代理来控制这个对象。
http://yangguangfu.iteye.com/blog/815787 这个博客举例讲解得比较清楚,如有不明白的地方可以查阅。
动态代理:借助于JVM的支持,可以在运行时动态生成代理类(“代理角色”),我们就可以解决代理模式中代码膨胀的问题,使用了动态代理后,“代理角色”将不用手动生成,而由JVM在运行时,通过指定类加载器、接口数组、调用处理程序这3个参数来动态生成。
从JDK1.3开始,java中引入了动态代理机制。相关的接口或类有如下两个:InvocationHandler和Proxy,都位于java.lang.reflect包下。
动态代理:通过实现InvocationHandler接口创建自己的调用处理器,通过为Proxy类指定ClassLoader对象和一组interface创建动态代理类,通过反射机制获取动态代理类的构造函数,其参数类型是调用处理器接口类型,通过构造函数创建代理类实例,此时需将调用处理器对象作为参数被传入。
AOP:面向切面编程
向目标程序的pointcut织入一段代码。pointcut与joinpoint是一对多的关系,joinpoint表示程序的方法调用前、方法调用后、方法抛出异常时以及方法调用前后。