• Controller层注解详解


    可根据右边目录快速浏览

    @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,代表绑定的属性名称。默认不传递时,绑定为同名的形参。

    参考

    @PathVariable注解使用

    @RequestMapping与@GetMapping和@PostMapping区别

  • 相关阅读:
    防御式编程
    Linux磁盘与文件系统管理
    更加抽象
    高质量的子程序
    Linux文件与目录管理
    抽象
    可以工作的类
    Linux的文件权限与目录配置
    条件、循环和其他语句
    软件构建中的设计
  • 原文地址:https://www.cnblogs.com/south-wood/p/12741091.html
Copyright © 2020-2023  润新知