问题描述
在SSM项目中整合SpringSecurity之后,启动tomcat弹出的页面就会出现报错,开发环境为IDEA,报错信息如下:
对于整合SpringSecurity,解决找不到bean的方式有两种,修改源码和整合Spring和SpringMVC的IOC容器。我使用的是将两个IOC容器二合一的方式,结果就报了上面的错误。
原因分析
检查一下web.xml的配置文件,所有的配置文件都交给MVC来扫描了,究其原因,可能是没成功把springmvc放进IOC容器里。在检查所有的配置都没问题的情况下,怀疑是SpringSecurity的版本问题,修改版本后成功解决问题。
解决方法
修改Maven依赖中SpringSecurity的版本,亲测4.3.20
的Spring和4.2.10
的Security可以兼容。
<properties>
<!-- 声明属性, 对 Spring 的版本进行统一管理 -->
<!-- spring.version是别名,随便起,但要跟dependences标签中一致 -->
<spring.version>4.3.20.RELEASE</spring.version>
<!-- 声明属性, 对 SpringSecurity 的版本进行统一管理 -->
<spring.security.version>4.2.10.RELEASE</spring.security.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>