Spring Boot请求/api/v1/movies返回404白标错误页求助
针对你访问http://localhost:8080/api/v1/movies返回404的情况,按以下步骤排查:
检查控制器是否被Spring扫描到
启动应用时查看控制台日志,找类似Mapped GET "/api/v1/movies" onto public java.lang.String pl.krywion.movies.app.MovieController.allMovies()的日志。如果没有这条日志,说明控制器未被注册,继续往下排查。确认@ComponentScan配置(若手动添加)
如果你给MoviesApplication加了@ComponentScan,确保扫描路径包含控制器所在包:@SpringBootApplication @ComponentScan(basePackages = "pl.krywion.movies") // 自动包含子包app // 或更精准写法:@ComponentScan(basePackageClasses = MovieController.class) public class MoviesApplication { // ... }注意:默认情况下
@SpringBootApplication已包含@ComponentScan,会扫描主类所在包(pl.krywion.movies)及其所有子包,你的控制器在pl.krywion.movies.app理论上应被扫描到,若未生效,优先排查IDE缓存问题。检查pom.xml是否引入web依赖
确保pom.xml里有spring-boot-starter-web依赖,缺失的话添加:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>没有该依赖,Spring Boot不会启动Tomcat等Web容器,无法处理HTTP请求。
验证请求地址和端口是否正确
查看application.properties里的server.port配置,默认是8080,若修改为其他值(如8081),请求地址需对应改为http://localhost:端口号/api/v1/movies。同时确认路径拼写完全一致,避免多写/少写斜杠。清理IDE缓存并重启应用
有时IDE编译缓存会导致类未被正确加载,比如IntelliJ可通过File -> Invalidate Caches...清理缓存,再重新编译启动应用。
内容的提问来源于stack exchange,提问作者Krywion

