官方文档为什么错误
在文章 Shiro的简介 中提到了如果想开启注解式的Shiro控制,需要将配置写在spring-mvc.xml中,而不是官方文档的 applicationContext.xml中。
本文原因已经找到,参考文章[最少依赖启动SSM][plus]
[plus]:http://alanli7991.github.io/2016/11/01/从空Pom文件用最少依赖配置SSM框架/
原因是什么呢
因为Spring本身仅仅是一个IOC容器,不一定提供Web服务,提供Web服务的是SpringMVC,所以官方文档仅仅是说如何和Spring集成,当然应该写在applicationContext.xml中。
但是一旦启用了SpringMVC的Web服务,Shiro在Web层的注解当然要放在spring-mvc.xml以便SpringMVC可以进行动态代理,如果写在了Spring的配置文件中,猜测和配置文件错误导致Transaction失效的原因一样,由于SpringMVC根本拿不到SecurityManager的Bean导致Shiro失效。
!!!!!原因是我猜的,错了不要打我 还有一种可能是由于SecurityManager有两个Bean可以选择,我选的是 DefaultWebSecurityManager