3.3 Spring Boot 下的 Spring MVC

Spring Boot 下的 Spring MVC 和之前的 Spring MVC 使用基本是一样的,主要有以下注解:

3.3.1 @Controller

Spring MVC 的注解,表名该类用于处理 http 请求

3.3.2 @RestController

Spring 4 后新增注解,是@Controller 注解功能的增强是 @Controller 与@ResponseBody 的组合注解 。如果一个 Controller 类添加了@RestController,那么该 Controller 类下的所有方法都相当于添加了@ResponseBody 注解,以往的案例我大多数都是使用该注解代替 @Controller 与@ResponseBody 的组合注解 。

注意,@RestController注解表明该控制类下的所有方法都返回字符串或 json 数据(因为@ResponseBody),所以不能跳转界面

案例:

@RestController 
public class TestController  { 
    @Autowired     
    private StudentService studentService; 
	
    @RequestMapping("/boot/stu")
    public Object stu(){         
        return studentService.getStudentById(1); 
	} 
} 

3.3.3 @RequestMapping(常用)

该注解常用参数一般为两个:value和method,当我们没有指定method参数时,注解表示标注的方法即支持 Get 请求,也支持 Post 请求。

注意,凡是直接从浏览器输入地址的请求,一定是get

@RequestMapping(value = "/student/details", method = RequestMethod.GET)
public Object studentDetail(Integer id){

    Student student = studentService.queryStudentById(id);
    return student;
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public Object register(Student student) {
    //...
}

3.3.4 @GetMapping

RequestMapping 和 Get 请求方法的组合,表明该方法只支持 Get 请求 。

@GetMapping("/student/details")
public Object studentDetail(Integer id){

    Student student = studentService.queryStudentById(id);
    return student;
}

Get 请求主要用于查询操作

3.3.5 @PostMapping

RequestMapping 和 Post 请求方法的组合 只支持 Post 请求

@PostMapping(value = "/register")
public Object register(Student student) {
    //...
}

Post 请求主要用户新增数据,比如注册

3.3.6 @PutMapping

RequestMapping 和 Put 请求方法的组合,只支持 Put 请求

@PutMapping(value = "/change")
public Object change(Student student) {
    //...
}

Put 通常用于修改(更新)数据

3.3.7 @DeleteMapping

RequestMapping 和 Delete 请求方法的组合 只支持 Delete 请求

@DeleteMapping(value = "/delete")
public Object delete(Student student) {
    //...
}

Delete通常用于删除数据

3.3.8 综合案例

(1) 创建一个 StudentController
/** 
 * 该案例主要演示了使用Spring提供的不同注解接收不同类型的请求 
 */ 

@RestController
public class StudentController {

    @GetMapping(value = "/query")
    public String get() {
        return "@GetMapping 注解,通常查询时使用";
    }
    @PostMapping(value = "/add")
    public String add() {
        return "@PostMapping 注解,通常新增时使用";
    }
    @PutMapping(value = "/modify")
    public String modify() {
        return "@PutMapping 注解,通常更新数据时使用";
    }
    @DeleteMapping(value = "/remove")
    public String remove() {
        return "@DeleteMapping 注解,通常删除数据时使用";
    }
}
(2)Http接口请求工具Postman

因为通过浏览器输入地址,默认发送的只能是 get 请求,我们需要通过工具——Postman,模拟发送不同类型的请求,并获得返回的结果

注意,有些机器可能会需要安装 MicroSort .NET Framework

(3) 使用 Postman

get方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4m2AH2L0-1623069624963)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210607203447749.png)]

post方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WtSxXEp7-1623069624964)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210607203548949.png)]

put方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rycrqDea-1623069624965)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210607203606188.png)]

delete方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TLHplWnv-1623069624965)(C:\Users\15998\AppData\Roaming\Typora\typora-user-images\image-20210607203628840.png)]
下一篇博客:
Springboot 之 RESTful风格

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐