zoukankan      html  css  js  c++  java
  • @Controller 文件相关 @RequestMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping

    https://blog.csdn.net/magi1201/article/details/82226289(copy)   

    最近学习看一些代码,发现对于发送请求这件事,有的地方用@RequestMapping,有的地方用@PostMapping,为了搞清楚区别,特意查了下spring 源代码,现在特此记录下。

     @GetMapping用于将HTTP get请求映射到特定处理程序的方法注解
    具体来说,@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。

    @PostMapping用于将HTTP post请求映射到特定处理程序的方法注解
    具体来说,@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。

    下面我们来看下@GetMapping的源码,可以对上面的两句释义给予充分的支撑。

    /**
     * Annotation for mapping HTTP {@code GET} requests onto specific handler
     * methods.
     *
     * <p>Specifically, {@code @GetMapping} is a <em>composed annotation</em> that
     * acts as a shortcut for {@code @RequestMapping(method = RequestMethod.GET)}.
     *
     *
     * @author Sam Brannen
     * @since 4.3
     * @see PostMapping
     * @see PutMapping
     * @see DeleteMapping
     * @see PatchMapping
     * @see RequestMapping
     */
    @Target(ElementType.METHOD)
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @RequestMapping(method = RequestMethod.GET)
    public @interface GetMapping {
     
        /**
         * Alias for {@link RequestMapping#name}.
         */
        @AliasFor(annotation = RequestMapping.class)
        String name() default "";
     
        ...
     
    }

    上面代码中,最关键的是 @RequestMapping(method = RequestMethod.GET),这行代码即说明@GetMapping就是@RequestMapping附加了请求方法。同时,可以看到@GetMapping这个注解 是spring4.3版本引入,同时引入的还有@PostMapping、@PutMapping、@DeleteMapping和@PatchMapping,一共5个注解。


    所以,一般情况下用@RequestMapping(method = RequestMethod. XXXX)即可。


  • 相关阅读:
    生成Ipa安装包的plist文件后生成下载链接
    ssh_key登录服务器,免密码登录
    Ruby中类的进阶(继承,private, public, protect)
    Ruby中的类
    Redis- redis.conf
    Active Job 基础
    rails框架配置
    rails中使用CarrierWave实现文件上传的功能
    Flask-SQLAlchemy
    Linux自动共享USB设备:udev+Samba
  • 原文地址:https://www.cnblogs.com/dianzan/p/11180638.html
Copyright © 2011-2022 走看看