91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringFramework中DefaultAopProxyFactory的作用是什么

發布時間:2021-06-22 14:37:20 來源:億速云 閱讀:136 作者:Leah 欄目:大數據

本篇文章為大家展示了SpringFramework中DefaultAopProxyFactory的作用是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

    Springaop中的DefaultAopProxyFactory,先上一張圖,如下圖1

         SpringFramework中DefaultAopProxyFactory的作用是什么

                                                                                            圖1

    Springaop中使用DefaultAopProxyFactory來創建代理,它決定了何時使用JDK還是Cglib代理,實現如下List-1所示:

    List-1

public class DefaultAopProxyFactory implements AopProxyFactory, Serializable {

	@Override
	public AopProxy createAopProxy(AdvisedSupport config) throws AopConfigException {
		if (config.isOptimize() || config.isProxyTargetClass() || hasNoUserSuppliedProxyInterfaces(config)) {
			Class<?> targetClass = config.getTargetClass();
			if (targetClass == null) {
				throw new AopConfigException("TargetSource cannot determine target class: " +
						"Either an interface or a target is required for proxy creation.");
			}
			if (targetClass.isInterface() || Proxy.isProxyClass(targetClass)) {
				return new JdkDynamicAopProxy(config);
			}
			return new ObjenesisCglibAopProxy(config);
		}
		else {
			return new JdkDynamicAopProxy(config);
		}
	}

	/**
	 * Determine whether the supplied {@link AdvisedSupport} has only the
	 * {@link org.springframework.aop.SpringProxy} interface specified
	 * (or no proxy interfaces specified at all).
	 */
	private boolean hasNoUserSuppliedProxyInterfaces(AdvisedSupport config) {
		Class<?>[] ifcs = config.getProxiedInterfaces();
		return (ifcs.length == 0 || (ifcs.length == 1 && SpringProxy.class.isAssignableFrom(ifcs[0])));
	}
}

    List-1中,目標對象擁有接口實現且沒設置proxyTargetClass=true,則使用JDK代理,此外如果目標對象是個接口或者是代理類,則使用JDK代理,否則使用Cglib,有些人說設置了ProxyTargetClass=true會使用JDK代理,正常情況下是正確的,不過從源碼來看不一定——即使設置了ProxyTargetClass=true,如果目標對象類是個接口或者是代理類,則使用使用的是JDK代理。

上述內容就是SpringFramework中DefaultAopProxyFactory的作用是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

营口市| 吉木萨尔县| 格尔木市| 桃源县| 梁平县| 木兰县| 晋城| 普兰县| 龙江县| 连平县| 保定市| 大丰市| 防城港市| 东乡族自治县| 五指山市| 乌鲁木齐市| 五大连池市| 富川| 白银市| 土默特右旗| 苍梧县| 古交市| 巩义市| 凤阳县| 古丈县| 六安市| 莫力| 阿图什市| 麻江县| 长顺县| 肃宁县| 昆山市| 江北区| 娄烦县| 台前县| 育儿| 临清市| 永靖县| 浦北县| 克什克腾旗| 扶绥县|