記:AOP二次代理導(dǎo)致的錯(cuò)誤。
前提:
- spring自己使用了自己的AOP。
- 集成shiro,shiro使用AOP進(jìn)行注解權(quán)限控制。
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看的不少了吧,其實(shí)這段集成在spring里是有問題的。
- 通常來說我們會對事物使用spring的聲明式事務(wù)管理,聲明式事務(wù)的原理是aop切面。
- 使用上面代碼,又會創(chuàng)建一層aop代理,最終導(dǎo)致com.sun.proxy.$Proxy..錯(cuò)誤。