@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws Exception {
if (Advice.class.isAssignableFrom(bean.getClass()) || Pointcut.class.isAssignableFrom(bean.getClass())
|| Advisor.class.isAssignableFrom(bean.getClass())
|| MethodInterceptor.class.isAssignableFrom(bean.getClass())) {
return bean;
}
List<DefaultPointcutAdvisor> defaultPointcutAdvisors = beanFactory
.getBeansForType(DefaultPointcutAdvisor.class);
for (DefaultPointcutAdvisor advisor : defaultPointcutAdvisors) {
if (advisor.getPointcut().getClassFilter().matches(bean.getClass())) {
ProxyFactory advisedSupport = new ProxyFactory();
advisedSupport.setMethodInterceptor((MethodInterceptor) advisor.getAdvice());
advisedSupport.setMethodMatcher(advisor.getPointcut().getmethodMatcher());
advisedSupport
.setTargetSource(new TargetSource(bean.getClass(), bean.getClass().getInterfaces(), bean));
return advisedSupport.getProxy();
}
}
return null;
}
DefaultAdvisorAutoProxyCreator.java 文件源码
java
阅读 22
收藏 0
点赞 0
评论 0
项目:my-spring
作者:
评论列表
文章目录