Closed
Description
版本号:
几个版本都有
问题描述:
shiroConfig 中defaultAdvisorAutoProxyCreator 导致有2个AutoProxyCreator ,另一个AnnotationAwareAspectJAutoProxyCreator,有 @Cacheable @transactional 的 类 A 被AnnotationAwareAspectJAutoProxyCreator生成代理类后PorxyB,该类PorxyB又被 defaultAdvisorAutoProxyCreator 再次生成代理类PorxyC,调用A的时候先调用ProxyC 再由ProxyC调用ProxyB, @Cacheable @transactional 都被执行两次,而且造成 @Cacheable @transactional 的优先级高于ProxyB 上AnnotationAwareAspectJAutoProxyCreator 生成的其他注解
截图&代码:
友情提示: 未按格式要求发帖,会直接删掉。
Activity
zhang0001 commentedon Mar 27, 2020
目前的解决方法就是让 defaultAdvisorAutoProxyCreator 不匹配任何注解就行
zhang0001 commentedon Mar 28, 2020
可以 修改 ShiroConfig
/**
* 下面的代码是添加注解支持
* @return
*/
@bean
@dependsOn("lifecycleBeanPostProcessor")
public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator() {
DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator = new DefaultAdvisorAutoProxyCreator();
defaultAdvisorAutoProxyCreator.setProxyTargetClass(true);
//添加前缀判断 不匹配 任何Advisor
defaultAdvisorAutoProxyCreator.setUsePrefix(true);
defaultAdvisorAutoProxyCreator.setAdvisorBeanNamePrefix("_no_advisor");
return defaultAdvisorAutoProxyCreator;
}
zhangdaiscott commentedon Apr 28, 2020
感谢
ssssshql commentedon Aug 26, 2024
你好,我发现这个导致我@RequiresPermissions验证不了权限,一直为无权限。注释掉这个就ok。。。请问如何解决
zhangdaiscott commentedon Aug 26, 2024
你是不是shrio排除了