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


    实现了FilterInvocationSecurityMetadataSource 的类将无法切入声明式事物。
    原因:

    1 查看继承关系

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

    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 {
    }  
    
  • 相关阅读:
    Redis之面试题总结
    nginx入门,安装
    NGINX工作原理(2)
    Ngnx工作原理(1)
    Linux之常用脚本
    进程管理工具之supervisor[详解]
    PHP进阶书籍
    LVS、Nginx及HAProxy
    高级程序员与初级程序员差别在哪里?
    详解Wox
  • 原文地址:https://www.cnblogs.com/linhp/p/5817083.html
Copyright © 2020-2023  润新知