- 动态代理
- 实现方式:jdk动态代理,使用jdk中的Proxy、Method、InvocationHandler创建代理对象。jdk动态代理要求目标类必须实现接口
- cglib动态代理:第三方的工具库,创建代理对象,原理是继承。通过继承目标类,创建子类。子类就是代理对象。要求目标不能是final的,方法也不能是final的
- 动态代理的作用:
- 不用动原来的代码
- 解耦合,让你的业务功能和日志,事务非业务功能分离
- 减少代码重复
- 专注业务逻辑
- AOP:面向切面编程,基于动态代理,可以使用jdk,cglib两种代理方式。
AOP就是动态代理的规范化,把动态代理的实现步骤,方式都定义好了,让开发人员用一种统一的方式,使用动态代理