Spring Boot 扫描不到Controller

在尝试使用Spring Boot构建小demo时遇到404错误,经过排查发现Controller未生效。问题在于@Controller注解的类没有显示小s标记,解决办法是确保入口类与Controller在同一级别目录下。通过这次经历,深入了解了@SpringBootApplication、@RestController和@RequestMapping等注解的含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照网上的例子做了一个小demo,但是写完一直报404
404

因为跟着第一次用了H2数据库,也不知道是不是数据库数据有问题还是怎么样 排查了许久

后来在controller里面打了桩发现根本没进方法也就是说controller没起作用,查了半天也没找到为什么(但是顺带加深了对几个注解的认识哈哈)

*就顺便写一点关于注解的吧
@SpringBootApplication:
相当于@Configuration @EnableAutoConfiguration @ComponentScan的组合注解,自动开启Spring Boot的程序组件扫描和配置功能
@RestController
相当于@ResponseBody @Controller的组合注解
@GetMapping
相当于@ReqestMapping(method = RequestMethod.GET)

扯远了说回问题:
本来加了注解的controller类在eclipse中会多一个小s的标记:
S标记
可是我的类上没有
没有S
查来查去终于看到网上说入口类要跟controller所在包是同级目录
我看了看原来的结构:
错误结构
于是把这个入口类拖出来试了试
正确结构
终于出数据了
data

就这么一个小问题纠结了好几个小时 各种乱调也没找到真正的原因,要走的路还很长………

### 解决Spring Boot Controller 不工作的问题 当遇到Spring Boot应用程序中的控制器(Controller)无法正常工作的状况时,有几种常见的原因和解决方案可以考虑。 #### 1. 控制器类未被扫描到 确保控制器所在的包及其子包已经被`@SpringBootApplication`注解所标注的启动类覆盖。如果控制器位于不同的模块或不在默认扫描路径下,则可能需要显式指定组件扫描的位置[^2]。 ```java @SpringBootApplication(scanBasePackages={"com.example.controller"}) public class MyApplication { public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` #### 2. 缺少必要的依赖库 确认项目中包含了构建Web应用所需的核心依赖项,比如`spring-boot-starter-web`。这可以通过Gradle配置文件来实现: ```gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' } ``` 对于Maven用户来说,应该在`pom.xml`里加入相应的依赖声明[^3]。 #### 3. 请求映射定义错误 检查控制器内的请求处理方法上是否有正确的HTTP动词(`GET`, `POST`)以及URL模式匹配。例如: ```java @RestController @RequestMapping("/api/v1") public class ExampleController { @GetMapping("/hello") public String sayHello() { return "Hello World!"; } } ``` 这里需要注意的是,`@RestController`是一个组合注解,它相当于同时使用了`@Controller`和`@ResponseBody`两个注解;而`@RequestMapping`用于设置基础路径,具体的端点由其下的具体方法通过如`@GetMapping`等进一步细化[^4]。 #### 4. 应用程序属性配置不当 有时问题也可能源于application.properties 或 application.yml 文件里的配置参数不正确。特别是涉及到服务器监听地址、端口或者其他网络相关设定的地方。确保这些值适合当前环境,并且不会与其他服务冲突。 #### 5. 日志级别过高掩盖异常信息 适当调整日志记录级别的高低可以帮助定位潜在的问题所在。较低的日志等级能够提供更多调试细节,在开发阶段建议暂时降低至DEBUG甚至TRACE级以便更好地观察内部运作情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值