代理的概念:不直接调用目标类,通过编写一个与目标类具有相同接口的代理类,代理类的每个方法去调用目标类的相同方法,并在调用方法时加上所要添加的功能代码。
作用:可以不用改动目标类代码,且通过配置文件的方式切换是直接调用目标类还是调用代理类。
代理的原理架构图:
AOP(Aspect oriented program):面向方面的编程,即主要指交叉业务的编程问题。AOP的目标就是要使交叉业务模块化,可以采用将切面代码移到方法的周围,这与直接在方法内部编写切面代码的运行效果是一样的。而代理技术的实现AOP功能的核心和关键技术。
如何解决在每个方法中添加代理功能呢?不可能在各个接口都写上对应的代码。
JVM创建动态类:通过Proxy类的getProxyClass方法。
原文:https://www.cnblogs.com/blogofzxf/p/14909378.html