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启动项目成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值