spring ProxyCreationContext 源码

  • 2022-08-08
  • 浏览 (496)

spring ProxyCreationContext 代码

文件路径:/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/ProxyCreationContext.java

/*
 * Copyright 2002-2018 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.aop.framework.autoproxy;

import org.springframework.core.NamedThreadLocal;
import org.springframework.lang.Nullable;

/**
 * Holder for the current proxy creation context, as exposed by auto-proxy creators
 * such as {@link AbstractAdvisorAutoProxyCreator}.
 *
 * @author Juergen Hoeller
 * @author Ramnivas Laddad
 * @since 2.5
 */
public final class ProxyCreationContext {

	/** ThreadLocal holding the current proxied bean name during Advisor matching. */
	private static final ThreadLocal<String> currentProxiedBeanName =
			new NamedThreadLocal<>("Name of currently proxied bean");


	private ProxyCreationContext() {
	}


	/**
	 * Return the name of the currently proxied bean instance.
	 * @return the name of the bean, or {@code null} if none available
	 */
	@Nullable
	public static String getCurrentProxiedBeanName() {
		return currentProxiedBeanName.get();
	}

	/**
	 * Set the name of the currently proxied bean instance.
	 * @param beanName the name of the bean, or {@code null} to reset it
	 */
	static void setCurrentProxiedBeanName(@Nullable String beanName) {
		if (beanName != null) {
			currentProxiedBeanName.set(beanName);
		}
		else {
			currentProxiedBeanName.remove();
		}
	}

}

相关信息

spring 源码目录

相关文章

spring AbstractAdvisorAutoProxyCreator 源码

spring AbstractAutoProxyCreator 源码

spring AbstractBeanFactoryAwareAdvisingPostProcessor 源码

spring AutoProxyUtils 源码

spring BeanFactoryAdvisorRetrievalHelper 源码

spring BeanNameAutoProxyCreator 源码

spring DefaultAdvisorAutoProxyCreator 源码

spring InfrastructureAdvisorAutoProxyCreator 源码

spring TargetSourceCreator 源码

spring package-info 源码

0  赞