Controller layer in Spring Boot
Springboot Controller层常用注解
包含类注解,方法注解,参数注解
[TOC]
类注解
@Controller与@RestController
相同处:都是用来表示Spring某个类的是否可以接收HTTP请求
@Controller
标识一个Spring类是Spring MVC controller处理器,@Controller类中的方法可以直接通过返回String跳转到jsp、ftl、html等模版页面。在方法上加@ResponseBody注解,也可以返回实体对象。
-
public class ControllerExample{
public String test(){
return "/user/test";
}
}
@RestController
@RestController是@Controller和@ResponseBody的结合体,@RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面。
-
@RestController public class UserController { @RequestMapping(value = "/index",method = RequestMethod.GET) public String toIndex(){ ModelAndView mv = new ModelAndView("index"); return mv; } }
---
---
### @RequestMapping
> 规定初步的请求映射,相对于web应用的根目录,
>
> @RequestMapping的默认属性为value,所以@RequestMapping("/example")等价于@RequestMapping(value="/example")
>
- [ ] ```java
@RestController
@RequestMapping("/example")
public class ExampleController{
//代码块
}
方法注解
进一步细分请求映射,相对于类定义处的URL。如果类定义处没有使用@RequestMapping注解,则方法标记的URL相对于根目录而言
@RequestMapping
@RequestMapping除了可以指定URL映射外,还可以指定“请求方法、请求参数和请求头”的映射请求
属性 | 功能 | |
---|---|---|
value | 请求的URL | |
method | 请求方法 | RequestMethod.GET(POST、DELETE、PUT、PATCH) |
params | 请求参数 | |
headers | 请求头 |
@GetMapping
用于将HTTP GET请求映射到特定处理程序方法的注释。具体来说,@GetMapping是一个作为快捷方式的组合注释: @RequestMapping(method = RequestMethod.GET)
@PostMapping
用于将HTTP POST请求映射到特定处理程序方法的注释。具体来说,@PostMapping是一个作为快捷方式的组合注释: @RequestMapping(method = RequestMethod.POST)
@PutMapping
和PostMapping作用等同,都是用来向服务器提交信息。如果是添加信息,倾向于用@PostMapping,如果是更新信息,倾向于用@PutMapping。两者差别不是很明显
@DeleteMapping
删除URL映射
-
@DeleteMapping(value = "/posts/{id}") public ResponseEntity<Long> deletePost(@PathVariable Long id) { var isRemoved = postService.delete(id); if (!isRemoved) { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } return new ResponseEntity<>(id, HttpStatus.OK); }
@PatchMapping
Patch方式是对put方式的一种补充
put方式是可以更新.但是更新的是整体.patch是对局部更新
RESTful风格
REST(Representational State Transfer):(资源)表现层状态转化,它是目前最流行的一种软件架构,其结构清晰、易于理解、扩展方便且符合标准,正在越来越多的被实践到应用中。