1 查看继承关系

先查看FilterInvocationSecurityMetadataSource的继承结构,可以看出,这个类是AopInfrastructureBean的子接口

Spring-Security (学习记录七)--实现FilterInvocationSecurityMetadataSource的类将无法切入声明式事物-LMLPHP

2 说明

可以看出FilterInvocationSecurityMetadataSource 是SecurityMetadataSource的子类,这个SecurityMetadataSource类的源码中可以看出是继承AopInfrastructureBean接口的,在spring中 AopInfrastructureBean接口为一个标记接口,该接口有以下描述:

Marker interface that indicates a bean that is part of Spring's AOP infrastructure. In
particular, this implies that any such bean is not subject to auto-proxying, even if a
pointcut would match. 这里说明了该接口 不支持自动代理,即时他是一个匹配的接入点,也无法切入事物。

3 查看源码:

/**
* Marker interface for <code>SecurityMetadataSource</code> implementations
* that are designed to perform lookups keyed on {@link FilterInvocation}s.
*
* @author Ben Alex
*/
public interface FilterInvocationSecurityMetadataSource extends SecurityMetadataSource {}

/**
* Implemented by classes that store and can identify the {@link ConfigAttribute}s that applies to a given secure object
* invocation.
*
* @author Ben Alex
*/
public interface SecurityMetadataSource extends AopInfrastructureBean { }
/**
* Marker interface that indicates a bean that is part of Spring's
* AOP infrastructure. In particular, this implies that any such bean
* is not subject to auto-proxying, even if a pointcut would match.
*
* @author Juergen Hoeller
* @since 2.0.3
* @see org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator
* @see org.springframework.aop.scope.ScopedProxyFactoryBean
*/
public interface AopInfrastructureBean {
}
05-08 14:52