记:AOP二次代理导致的错误。
前提:
- spring自己使用了自己的AOP。
- 集成shiro,shiro使用AOP进行注解权限控制。
shiro配置
<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor" />
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
<property name="securityManager" ref="securityManager" />
</bean>
想来以上代码在shiro看的不少了吧,其实这段集成在spring里是有问题的。
- 通常来说我们会对事物使用spring的声明式事务管理,声明式事务的原理是aop切面。
- 使用上面代码,又会创建一层aop代理,最终导致com.sun.proxy.$Proxy..错误。
网友评论