package com.fh.interview.aop; /** * Aop测试类 * * Spring中的Aop代理由IOC容器负责创建,管理,其依赖关系也由IOC容器负责管理 * * 默认使用JDK的动态代理创建接口实例的代码 * 当需要代理的类而不是接口的时候,使用Cglib * * * * 前面说过Spring使用动态代理或是CGLIB生成代理是有规则的, * 高版本的Spring会自动选择是使用动态代理还是CGLIB生成代理内容, * 当然我们也可以强制使用CGLIB生成代理, * 那就是<aop:config>里面有一个"proxy-target-class"属性, * 这个属性值如果被设置为true,那么基于类的代理将起作用, * 如果proxy-target-class被设置为false或者这个属性被省略, * 那么基于接口的代理将起作用 * * * Spring AOP 框架对 AOP 代理类的处理原则是: * 如果目标对象的实现类实现了接口, * Spring AOP 将会采用 JDK 动态代理来生成 AOP 代理类; * 如果目标对象的实现类没有实现接口,Spring AOP 将会采用 * CGLIB 来生成 AOP 代理类 * * * 编译时增强 * 运行时增强 * * 代理对象的方法=增强处理+被代理对象的方法 * @author * @create 2018-06-09 下午1:20 **/ public class AopDemo { }