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