起因
公司开发项目,负责登录模块和其他功能的同事一直没有整合代码,才导致遇见了这么一个神奇的BUG,非常让我抓狂,以后一定要上传SVN,提起整合代码才会尽早发现这种BUG.
报错
直接报错提示说无法加载数据源的bean,导致启动直接报错,后来经过对shiro的查找发现是shiro的aop和多数据源的aop发生冲突,于是开始查找资料,网上各种说法
解决
简单粗暴直接上解决方法
如果你的spring版本低于2.x
需要添加配置文件
spring:
aop:
autotrue: true
proxy-target-class: true
这是配置文件需要添加的东西,当然如果你的版本高于则可以忽略
//这是shiro的一个配置类DefaultAdvisorAutoProxyCreator强制使用cglib代理setProxyTargetClass(true)
@Bean
@DependsOn("lifecycleBeanPostProcessor")
public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
DefaultAdvisorAutoProxyCreator d = new DefaultAdvisorAutoProxyCreator();
d.setProxyTargetClass(true);
d.setUsePrefix(true);
return d;
}
完美解决
本文介绍了在项目中遇到Shiro框架与阿里Druid多数据源整合时出现的启动报错问题。报错原因是Shiro的AOP与多数据源AOP冲突。解决方法包括在Spring配置中启用AOP并设置为使用CGLIB代理,以及在Shiro配置中指定使用CGLIB。通过这些配置,成功解决了启动报错的问题。
675

被折叠的 条评论
为什么被折叠?



