springboot中的controller层和postman接口测试

controller层

1.@Controller
注解在类上,默认表示该类所有方法的返回值为一个跳转路径字符串(会经过视图解析器解析,加前后缀)
而在类中方法加上@ResponseBody,表示该方法返回值会被转换为JSON格式的字符串返回,通常此方法返回值令其为Object
2.@RestController
注解在类上,表示该类中所有方法返回值都会转换为JSON格式字符串返回(通常令方法返回值为Oject)
@RestController = @Controller+@ResponseBody
3.@RequestMapping
注解在类上:接口访问的一级路径
注解在方法上:接口访问的二级路径
springboot中的controller层和postman接口测试_第1张图片
分析:访问地址 = 网络协议://主机IP:端口号+一级路径/二级路径?传参列表
http://localhost:8080/hao/userInfo/getuser?id=4
@GetMapping和**@PostMapping**区别:GET把参数包含在URL中,POST通过请求体传递参数
总结:请求路径被映射为了controller层中类的的一个方法上,而请求路径上携带的参数或者请求体中的参数至少要将执行该映射方法的所有形参全部传入,否则方法执行缺少参数造成400错误。前后端的参数映射可以通过注解进行匹配也可以自动进行匹配(要求参数名相同)

4.@RequestParam与@RequestBody
相同点:都注解在方法的参数上,用于后台正确接收前端数据
不同点:一个请求,只有一个RequestBody,但可以有多个RequestParam。
@RequestBody主要用来接收前端通过POST请求传递给后端的json字符串;(本质是json的key与实体类的属性进行匹配,匹配成功调用setter方法,所以要保证json中的key与实体类属性名相同且实体类有setter方法)
如果参数不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收,或者形参前什么也不写也能接收。
如果参数前写了@RequestParam(xxx),那么前端必须有对应的xxx名字才行,没有的话会自动匹配,只有匹配不上才会报400

postman接口测试

springboot中的controller层和postman接口测试_第2张图片
CRUD接口开发工程师GET!

你可能感兴趣的:(学习,笔记,json,spring,boot,restful)