Springboot - Controller学习
它是什么
Controller是SpringBoot的基本组件,也是MVC结构的组成部分,其作用是将用户提交来的请求通过URL匹配,分发给不同的接收器(具体的Controller),该接收器会对其进行相应处理,然后返回处理结果。
注解
Springboot提供了@Controller和@RestController两种注解标识此类负责接收和处理的Http请求
如果请求的是页面和数据,使用@Controller注解即可;如果仅仅请求数据,可以使用@RestController注解

Controller用法
代码中返回了字符串和URL中的部分参数
1 2 3 4 5 6 7 8 9 10 11 12 13
| @Controller public class HelloController {
//http://www.hawcat.cn/hello // 参数接收 http://www.hawcat.cn/hello?nickname=zhangsan&phone=123 @RequestMapping(value = "/hello", method = RequestMethod.GET) public String Hello(String nickname, String phone) { System.out.println(phone); return "Hello," + nickname + phone; } }
|
RestController用法
@RestController注解会将返回的对象数据转换为Json格式
1 2 3 4 5 6 7 8 9 10 11 12 13
| @RestController public class HelloController {
//http://www.hawcat.cn/hello // 参数接收 http://www.hawcat.cn/hello?nickname=zhangsan&phone=123 @RequestMapping(value = "/hello", method = RequestMethod.GET) public String Hello(String nickname, String phone) { System.out.println(phone); return "Hello," + nickname + phone; } }
|
路由映射
@GetMapping : 处理Get请求,获取资源。
@PostMapping:处理Post请求,新增资源。
@PutMapping:处理PUT请求,更新资源。
@DeleteMapping:处理Delete请求,删除资源。
@PatchMapping:处理Patch请求,更新部分资源。
在前后端分离的项目中常用的可能就是前两种吧
也可以使用RequestMapping然后在参数里面填写对应方法实现上述相同功能。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| @RestController public class UserController { @ApiOperation("获取用户") @GetMapping("/user/{id}") public String getUserById(@PathVariable int id){ System.out.println(id); return "根据ID获取用户信息";
} @PostMapping("/user") public String save(User user){ return "添加用户"; }
@PutMapping("/user") public String update(User user){ return "更新用户"; }
@DeleteMapping("/user/{id}") public String deleteById(@PathVariable int id){ System.out.println(id); return "根据ID删除用户"; } }
|
:D 获取中...