Spring注解学习_AOP原理4_AopProxyFactory

  1. AOP代理工厂

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实现了这一接口

image-20200406060805745

阅读源码,可知默认情况下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/
目录
×

喜欢就点赞,疼爱就打赏