- 😜作 者:是江迪呀
- ✒️本文关键词:
SpringBoot、Spring、注解、@Controller、@RestController- ☀️每日 一言:
弗雷尔卓德是个好地方,可以造东西、打架、大吃一顿,啊~~ 甜蜜的家园呐 ——《英雄联盟》奥恩

一、前言
@Controller 和 @RestController 是在Spring框架中用于构建 Web 应用程序的注解,它们在处理 HTTP 请求时有不同的作用。今天我们讲一下SpringBoot框架中,@Controller和@RestController注解区别,以及使用场景。
二、正文
@RestController 和 @Controller 是 Spring Framework 中用于处理 HTTP 请求的注解,它们之间的主要区别在于返回值以及用途。
2.1 @Controller
@Controller 注解是 Spring 框架中用于标记控制器(Controller)类的注解。控制器是 Web 应用程序的一部分,它用于接收来自客户端的 HTTP 请求,并根据请求的内容执行相应的业务逻辑。@Controller 类通常包含多个处理 HTTP 请求的方法,这些方法使用 @RequestMapping 等注解来映射请求的 URL。返回的数据通常是一个视图名称,Spring 会根据视图名称渲染 HTML 页面。
@Controller通常用于创建传统的Spring MVC控制器,它处理 HTTP 请求并返回视图(HTML 页面)或模型数据。- 当一个方法被
@Controller标记时,Spring MVC将根据方法的返回值和视图**解析器(View Resolver)**来决定如何渲染响应,通常用于返回HTML页面或者渲染视图。 - 适用于传统的
Web应用程序,其中前端页面与后端**控制器(Controller)**相分离。
2.2 @RestController
-
@RestController是@Controller的一个特殊版本是一个复合注解,它结合了@Controller和@ResponseBody注解。

-
@RestController用于创建RESTful Web服务,其处理HTTP请求并返回数据,而不是视图。返回的数据通常以 JSON 或 XML 格式。
Spring Boot应用程序中常用于构建RESTful API,可以方便地将 Java 对象转换为JSON或XML响应。
三、应用
3.1 使用@Controller 返回静态页面
@Controller
public class StaticController {
/**
* 返回static下面的静态资源
* @return
*/
@GetMapping("/static")
public String returnStatic(){
return "/index.html";
}
}
注意: 请确保在resources/static目录下面有对应的静态资源。
resources/static 是默认的静态资源访问地址,如果你想要指定地址,需要在配置文件(yaml或者properties文件)中添加如下的配置:
spring:
resources:
static-locations: classpath:[指定静态文件的路径]

3.2 使用@RestController返回数据
@GetMapping("/userInfo")
public List<User> queryUser(){
List<User> user = new Arraylist<>();
return user;
}



















