Skip to content

Springboot学习笔记:@Controller、@RestController以及@RequestBody #87

@QiYongchuan

Description

@QiYongchuan

1.@controller@RestController

涉及MVC模型:

MVC模型
  • M:model,模型层,和数据库打交道。《==MyBatis
  • V:view,视图层。用户看到的页面结果。 《== Thymeleafs模板语言/前后端分离项目中返回的数据(多是JSON)
  • C:controller,控制层。实现业务逻辑:数据的处理和页面的跳转。《==Spring MVC

image

控制器中两种注解:

@controller@RestController

image

在前后端分离的项目中,后端主要往前端返回的是数据,所以用RestController,
而在前后端不分离的项目时,多用Controller返回的是页面,结合Thymeleaf使用的,此时是返回页面,寻找的是页面。

@controller 是返回页面和数据的,当我们只用Controller的时候,默认是找的页面,比如下面是找hello页面了(前后端 不分离的项目)
image

如果想返回数据,而不是页面呢?
需要加上@RequestBody

image

@RestController=@controller@responsebody的结合

当你使用@RestController注解时,Spring会自动处理你的类中的所有方法,使其返回的数据直接作为HTTP响应的正文返回给客户端,而不需要你在每个方法上单独标注@responsebody

@RestController注解是@controller@responsebody的结合,这意味着它既将类标记为控制器,又表明类中的所有方法都会自动以@responsebody的方式处理。这使得@RestController非常适合用于构建RESTful API,其中所有的响应都是数据(如JSON或XML),而不是视图或模板页面。

这种方式简化了开发过程,因为你不需要在每个方法上重复使用@responsebody注解,从而让代码更加简洁和直观。总的来说,如果你的应用主要是服务于HTTP API的,使用@RestController会更方便。

前后端分离项目中,主要使用的就是:@RestController

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions