动态代理
1、Spring AOP实现主要是基于动态代理技术
- 当spring采用AOP配置后,spring容器返回的目标对象,实质上是spring采用动态代理技术生成的一个代理类型,代理类重写了元组件目标方法的功能,在代理类中调用方面功能和目标对象功能。
动态代理是在不改变原有代码的基础上增加新的功能
2、什么情况使用动态代理?
- 需要为一些类的方法添加新的功能,又不想大量修改这个类。
采用动态代理,可以在不知道该类要实现什么功能的情况下去,去适应类的变化,减少框架的耦合
- 需要增加额外的功能,而且增加额外功能的类本身不确定
- 在类的方法运行之时,能和其互动
3、动态代理中有个被代理类和代理类你了解吗?
- 被代理类: 哪个类中的方法要加强,称这个类为被代理类
加强 : 通知(抽取出的公共方法)
- 代理类 : 加强被代理类中方法的类
4、总结
使用动态代理可以在程序运行期间动态的获取被代理类中的所有方法,获取之后,便可以在代理类中对该方法进行加强