使用代理对象, 是为了在不修改目标对象的基础上, 增强目标对象的业务逻辑.
静态代理
静态代理的特点是, 为每一个业务增强都提供一个代理类, 由代理类来创建代理对象....调用dao层,完成转账主业务.
CGLIB动态代理
JDK动态代理必须要有接口, 但如果要代理一个没有接口的类该怎么办呢? 这时我们可以使用CGLIB动态代理....CGLIB动态代理的原理是生成目标类的子类, 这个子类对象就是代理对象, 代理对象是被增强过的.
注意: 不管有没有接口都可以使用CGLIB动态代理, 而不是只有在无接口的情况下才能使用....dao层,完成转账主业务.");
}
}
(2) 切面抽象类
定义一个切面抽象类, 该类使用了模板方法的设计模式, 为开始, 结束, 异常, 前置增强, 后置增强提供了默认实现, 当我们定义切面类时只需要按需重写它们就行...Throwable e) {
}
/**
* 最终增强
*/
public void end() {
}
}
(3) 切面类
创建一个切面类, 类中配置切入点和增强