Spring注解学习_AOP原理4_AopProxyFactory
¶AOP代理工厂
spring中代理对象的产生,是通过代理工厂(抽象工厂模式)实现的。spring中的动态代理是使用jdk或者cglib的动态代理,具体用哪种目标类是否实现接口。
AOP代理工厂为抽象工厂,其工厂接口为:
public interface AopProxyFactory {
/**
* Create an {@link AopProxy} for the given AOP configuration.
* @param config the AOP configuration in the form of an
* AdvisedSupport object
* @return the corresponding AOP proxy
* @throws AopConfigException if the configuration is invalid
*/
AopProxy createAopProxy(AdvisedSupport config) throws AopConfigException;
}
查看其实现情况,发现实现类只有:DefaultAopProxyFactory实现了这一接口
阅读源码,可知默认情况下Spring自动决定如何创建代理对象:
- 如果被代理对象实现了某个接口,就用Jdk动态代理
- 如果被代理对象没有实现某个接口,jdk没法创建动态代理,使用cglib动态代理
这其实就是一个典型的简单的抽象工厂模式,工厂类实现了父工厂接口,生产产品(代理对象)
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,邮件至 708801794@qq.com
文章标题:Spring注解学习_AOP原理4_AopProxyFactory
文章字数:255
本文作者:梅罢葛
发布时间:2020-04-06, 22:31:40
最后更新:2020-04-06, 22:36:25
原始链接:https://qiurungeng.github.io/2020/04/06/Spring%E6%B3%A8%E8%A7%A3%E5%AD%A6%E4%B9%A0-AOP%E5%8E%9F%E7%90%864-AopProxyFactory/