问题描述
新建若依模块之后,启动项目访问接口出现 404,控制台只输出一句: Initializing Spring DispatcherServlet ‘dispatcherServlet’ 没有其他报错信息,接口无法访问。
问题原因
出现这种情况通常有以下几种可能:
- 模块没有被正确扫描,Controller 没有注入 Spring 容器
- 包路径不规范,不在默认扫描范围
com.ruoyi下 - 启动类没有扫描到新包
- 访问路径写错
- 被权限框架拦截
- 路由配置错误
解决方案
一、检查包名结构
若依默认扫描的包是:
com.ruoyi
你的新模块必须在 com.ruoyi.xxx 下,否则不会被加载。
错误结构示例:
com.test.project
正确结构:
|
|
二、检查启动类扫描范围
在启动类 RuoYiApplication.java 中确认扫描包:
|
|
如果你的模块不在 com.ruoyi 下,需要手动加入:
|
|
三、检查 Controller 注解
确保类上添加了 @RestController 或 @Controller:
|
|
四、检查访问路径是否正确
如果 Controller 是:
|
|
访问路径应为: http://localhost:8080/user/info
五、检查是否被权限拦截
在 SecurityConfig.java 中放行路径:
|
|
六、检查是否注册到 Spring 容器
启动时打开日志,查看是否有你的 Controller 被加载:
|
|
如果没有出现,说明没有被扫描到。
七、检查 Spring MVC 配置
确认 DispatcherServlet 正常加载,控制台应出现类似日志:
Mapping servlet: ‘dispatcherServlet’ to [/]
Mapped URL path [/demo/**] onto handler XXXController
七、最终总结
出现 Initializing Spring DispatcherServlet ‘dispatcherServlet’ 且接口 404,99% 是以下原因:
包不在 com.ruoyi 下
Controller 没加注解
路径写错
被权限拦截
模块未被 Spring 扫描
按照上面步骤逐一排查即可解决。