1.aop 代理xx 在真正对普通bean作为tartget创建代理proxy对象前,
先是找该类所对应所有的可以适配的 通知类集合时,
在 AbstarctAdvisorAutoProxyCreator 中
protected List<Advisor> findAdvisorsThatCanApply(
List<Advisor> candidateAdvisors, Class<?> beanClass, String beanName) {
ProxyCreationContext.setCurrentProxiedBeanName(beanName);
try {
return AopUtils.findAdvisorsThatCanApply(candidateAdvisors, beanClass);
}
finally {
ProxyCreationContext.setCurrentProxiedBeanName(null);
}
}
而那个setxxxName 就是

public 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");
2.获取requestxxx
本文深入探讨了AOP(面向切面编程)在Spring框架中的实现细节,特别是在创建代理对象过程中如何匹配合适的通知类。文章详细解析了AbstractAdvisorAutoProxyCreator类中findAdvisorsThatCanApply方法的作用,以及在匹配过程中如何利用ThreadLocal保存当前被代理的bean名称,确保正确地为每个bean创建代理。
3097

被折叠的 条评论
为什么被折叠?



