初学Spring Boot @RestController或@Controller注解无效问题

本文详述在SpringBoot项目中,@RestController或@Controller注解失效的问题解决过程。问题出现在主程序与控制器类不在同一级包或外层包中。通过调整包结构,将主程序置于控制器类的同一级或外层,成功使注解生效,实现localhost:8080/index路径正常响应。

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

本文记录初次学习Spring Boot , @RestController或@Controller添加注解无效问题。
使用的编辑器是IDEA

按照步骤:
1.新建项目(选择Spring Initializr --> 选好JDK --> NEXT)
在这里插入图片描述
2.填好项目信息
在这里插入图片描述
3.勾选上要添加的依赖(注意:Spring Web Starter必须要勾选)
在这里插入图片描述
在这里插入图片描述
4.项目建好后,等待Idel编译好,新建controller包,再包下新建TestController.java类,然后运行程序
TestController为灰色说明没有被引用,即注解不生效在这里插入图片描述在这里插入图片描述
很简单的一个例子,但是注解却不生效,网页打开localhost:8080/index显示:
在这里插入图片描述
404,路径找不到,捣鼓了好久,重新新建项目也不行,最后才找到原因:主程序XXXApplication.java的java文件必须放到比XXXController.java更外层的包中或是同一级包下注解@RestController才能生效,像这样在不同的包下注解不会生效:
在这里插入图片描述
修改为这样就可以,同一级包下:
在这里插入图片描述
或者将XXXApplication.java移动到最外层包下:
在这里插入图片描述
此时重新编译程序,网页打开localhost:8080/index:
在这里插入图片描述
ok,记录一下这个错误,以防有小白再犯!哈哈哈

### 关于@RestController注解所需依赖 在Spring Boot项目中,`@RestController`注解用于定义一个控制器类,该类中的所有方法都会返回数据而不是视图[^1]。为了使`@RestController`正常工作,通常需要引入Spring Web模块的相关依赖。 以下是典型的Maven依赖配置: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 上述依赖会自动拉取Spring MVC和其他必要的库来支持RESTful API的功能[^2]。具体来说,`spring-boot-starter-web`包含了以下核心组件: - Spring Web:提供了处理HTTP请求的核心功能。 - JacksonGson:用于JSON序列化和反序列化的默认库。 - Tomcat嵌入式服务器:作为默认的Web容器。 当使用`@SpringBootApplication`注解时,默认启用了自动配置功能,因此无需额外手动配置即可直接使用`@RestController`注解创建REST接口。 #### 自动配置的作用 通过`@EnableAutoConfiguration`隐含的效果(由`@SpringBootApplication`触发),Spring Boot会在classpath中检测到`spring-boot-starter-web`的存在后,自动完成对Spring MVC的支持配置。 ### 示例代码 下面是一个简单的`@RestController`示例: ```java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api") public class ExampleController { @GetMapping("/hello") public String sayHello() { return "Hello, World!"; } } ``` 此代码片段展示了如何利用`@RestController`注解定义一个REST端点,而不需要任何其他特殊设置。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值