切换项目后Spring Boot项目出现404错误,未修改代码
解决Spring项目切换后404问题的排查步骤
1. 检查IDEA项目模块配置
- 右键项目 →
Open Module Settings,确认模块类型为Spring/Spring Boot,而非普通Java模块。切换项目后IDEA可能自动重置模块类型。 - 在
Project Structure中,确保src/main/java标记为蓝色Sources目录,src/main/resources标记为黄色Resources目录。错误的目录标记会导致Spring无法扫描控制器类。
2. 验证Spring组件扫描范围
- 若使用Spring Boot,检查启动类的
@SpringBootApplication注解:默认扫描启动类所在包及其子包。如果MainController不在该范围内,手动指定扫描包:@SpringBootApplication(scanBasePackages = "你的控制器所在包路径") - 确认
MainController上的@Controller注解未被误删,该注解已包含@Component,确保Spring能识别并加载这个控制器。
3. 清理并重建项目
- 执行
Build → Clean Project,再执行Build → Rebuild Project,清除切换项目产生的编译缓存冲突。 - 手动删除项目根目录下的
target文件夹,彻底清理编译产物后重新构建。
4. 检查Tomcat运行配置
- 打开
Run/Debug Configurations,在Deployment标签下:- 确认
Application context路径正确(比如设置为/,避免访问路径前缀错误)。 - 确认部署的是当前项目的
war或exploded war,而非其他项目的产物。
- 确认
5. 核对Thymeleaf模板位置
- 确保
home.html位于src/main/resources/templates目录(Spring Boot默认Thymeleaf模板路径)。 - 检查
application.properties中的Thymeleaf配置,比如spring.thymeleaf.prefix,确认配置路径与实际模板位置一致。
6. 分析Spring启动日志
- 启动项目时,在控制台日志中搜索
Mapping关键字,确认是否存在GET /home -> 你的MainController#home(Model)的映射记录。如果没有,说明控制器未被Spring扫描到,回到步骤1、2排查。 - 同时查看日志中是否有类加载失败、配置文件读取异常等信息,这些问题也会导致控制器无法正常注册。
内容的提问来源于stack exchange,提问作者AlexJP
相关产品推荐
相关产品推荐

