- 😜作 者:是江迪呀
- ✒️本文关键词:
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;
}