可根据右边目录快速浏览
@Controller
处理http请求,在对应的方法上视图解析器可以解析return中的jsp或html页面,并且跳转到相应页面
@RestController
在默认情况下,使用了 @RestController 注解即可将返回的数据结构转换成 Json 格式
@RestController注解相当于@ResponseBody + @Controller合在一起的作用(好吧我感觉我自己在讲废话,是本书上都这么写)
So想理解@RestController
我们就要点进去看一下该注解都包含了哪些东西。
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
@AliasFor(
annotation = Controller.class
)
String value() default "";
}
可以看到 @RestController
注解包含了原来的 @Controller
和 @ResponseBody
注解,@ResponseBody
注解是将返回的数据结构转换为 Json 格式。所以在默认情况下,使用了 @RestController 注解即可将返回的数据结构转换成 Json 格式
@GetMapping
用于将HTTP GET请求映射到特定处理程序方法的注释。
里面最重要的就是这一句@RequestMapping(method = {RequestMethod.GET})
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
method = {RequestMethod.GET}
)
public @interface GetMapping {
@PostMapping
用于将HTTP POST请求映射到特定处理程序方法的注释。
里面最重要的就是这一句@RequestMapping(method = {RequestMethod.POST})可以看出@GetMapping和@PostMapping的区别并不大
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
method = {RequestMethod.POST}
)
public @interface PostMapping {
@RequestMapping
当你还在犹豫用@GetMapping还是@PostMapping时用他们爸爸(@RequestMapping)就对了
@PathVariable
只支持一个属性value,类型是为String,代表绑定的属性名称。默认不传递时,绑定为同名的形参。