SpringBootApplication无法识别REST Controller问题求助
Spring Boot REST Controller 无法被扫描导致404问题求助
我正在构建一个带CRUD功能的Spring REST API,用于操作MongoDB中的书籍数据,项目结构如下:
- BackendBookLibraryApplication.java 位于
main > java > com.lena.backendbooklibrary - BookController.java 位于
main > java > com.lena.backendbooklibrary.controllers
主启动类代码:
package com.lena.backendbooklibrary; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class BackendBookLibraryApplication { public static void main(String[] args) { SpringApplication.run(BackendBookLibraryApplication.class, args); } }
BookController代码:
package com.lena.backendbooklibrary.controllers; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api/v1/books") public class BookController { @GetMapping public String getAllBooks() { return "All books"; } }
启动应用后,访问 http://localhost:8080/api/v1/books 始终返回404错误,控制台没有任何报错信息。按照Spring Boot的规则,控制器在主启动类的子包下应该会被自动扫描到,但实际情况并非如此。
我已经尝试了以下排查操作:
- 在BackendBookLibraryApplication类上直接添加@RestController注解和请求映射,实现GET方法:此方式可行,访问对应路径能正常返回内容
修改后的主类代码:package com.lena.backendbooklibrary; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController @RequestMapping("/api/v1/books") public class BackendBookLibraryApplication { public static void main(String[] args) { SpringApplication.run(BackendBookLibraryApplication.class, args); } @GetMapping public String getAllBooks() { System.out.println("BackendBookLibraryApplication: getAllBooks()"); return "All books"; } } - 将BookController移至与主启动类相同的包
com.lena.backendbooklibrary下:问题依旧,还是返回404 - 在主启动类上额外添加
@ComponentScan(basePackageClasses = BookController.class)注解(原本清楚@SpringBootApplication已经包含组件扫描功能):无效
恳请Spring技术相关的专家帮忙分析问题原因,谢谢!
内容的提问来源于stack exchange,提问作者LenaHm
相关产品推荐
相关产品推荐

