SpringBoot开启aop后导致shiro的 AuthorizationAttributeSourceAdvisor的bean创建失败

编程入门 行业动态 更新时间:2024-10-25 14:30:57

SpringBoot开启<a href=https://www.elefans.com/category/jswz/34/1767899.html style=aop后导致shiro的 AuthorizationAttributeSourceAdvisor的bean创建失败"/>

SpringBoot开启aop后导致shiro的 AuthorizationAttributeSourceAdvisor的bean创建失败

开启SpringBoot的AOP后出现了创建AuthorizationAttributeSourceAdvisor创建失败

这个类主要就是实现shiro的权限注解的,shiro的权限注解是基于AOP实现的也就是代理方法实现的,shiro的advisor创造器是

可以shiro看到默认用的是DefaultAdvisorAutoProxyCreator,这个是AOP的自动代理创造器。
而我世界引入aop的包,它的自动配置是添加了@EnableAspectJAutoProxy

所以采用默认AOP使用的是AnnotationAwareAspectJAutoProxyCreator这个创造器。
这里之所以shiro采用DefaultAdvisorAutoProxyCreator创造器是因为他只要扫描自己注解支持的方法生成代理对象,而Aop是使用DefaultAdvisorAutoProxyCreator创造器是因为Aop需要根据 @PointCut 注解 来动态的解析代理哪些方法。
按理说在向容器注册创造器的时候会判断是否存在代理创造器,留下优先级最高的创造器所以最后应该是AnnotationAwareAspectJAutoProxyCreator被留下来,所以没创建AuthorizationAttributeSourceAdvisor的Bean吗?
然后我们自己向容器注册一个DefaultAdvisorAutoProxyCreator,并且让它判断前缀去创造Advisor bean

这样可以成功创建AuthorizationAttributeSourceAdvisor启动项目成功

更多推荐

SpringBoot开启aop后导致shiro的 AuthorizationAttributeSourceAdvisor的bean创建失败

本文发布于:2024-02-11 19:25:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1682916.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:aop   SpringBoot   shiro   bean   AuthorizationAttributeSourceAdvisor

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!