注释@GetMapping和@RequestMapping之间的区别(方法= RequestMethod.GET)


151

@GetMapping和之间有什么区别@RequestMapping(method = RequestMethod.GET)
我在一些Spring Reactive示例中看到了,它 @GetMapping被用来代替@RequestMapping

Answers:


193

@GetMapping是组成的注解,充当的快捷方式@RequestMapping(method = RequestMethod.GET)

@GetMapping是较新的注释。支持消费

消耗选项为:

消耗=“文本/纯文本”
消耗= {“文本/纯文本”,“应用程序/ *”}

有关更多详细信息,请参见: GetMapping注释

或阅读: 请求映射变体

RequestMapping支持也消耗

GetMapping我们只能应用于方法级别,而RequestMapping注释可以应用于类级别以及方法级别




22

正如你可以看到在这里

具体来说,@GetMapping是一个组合的注释,用作的快捷方式@RequestMapping(method = RequestMethod.GET)

@GetMapping和之间的区别@RequestMapping

@GetMapping支持的consumes属性,例如 @RequestMapping


14
好消息!从4/2017开始,在您链接到的Spring网页上,GetMapping 现在确实支持' consumes '和通常的RequestMapping属性。Spring可能在您的帖子之后添加了这些内容。
devdanke '17

10

@RequestMapping 是班级

@GetMapping 在方法级别

使用sprint Spring 4.3。事情发生了变化。现在,您可以在将处理http请求的方法上使用@GetMapping。使用(方法级别)@GetMapping注释完善了类级别的@RequestMapping规范

这是一个例子:

@Slf4j
@Controller
@RequestMapping("/orders")/* The @Request-Mapping annotation, when applied
                            at the class level, specifies the kind of requests 
                            that this controller handles*/  

public class OrderController {

@GetMapping("/current")/*@GetMapping paired with the classlevel
                        @RequestMapping, specifies that when an 
                        HTTP GET request is received for /order, 
                        orderForm() will be called to handle the request..*/

public String orderForm(Model model) {

model.addAttribute("order", new Order());

return "orderForm";
}
}

在Spring 4.3之前,它是 @RequestMapping(method=RequestMethod.GET)

克雷格·沃尔斯(Craig Walls)撰写的书中的额外读物 克雷格·沃尔斯(Craig Walls)撰写的书中的额外读物


1
@RequestMapping也可以应用于方法。
赵刚

是的,可以。但是,@ GetMapping更为简洁,并且特定于它所针对的HTTP方法。
zee

3

简短答案:

语义上没有区别。

具体来说,@ GetMapping是一个组合的批注,用作 @RequestMapping(method = RequestMethod.GET)的快捷方式

进一步阅读:

RequestMapping 可以在课堂上使用:

此注释可以在类和方法级别上使用。在大多数情况下,在方法级别,应用程序将更喜欢使用HTTP方法特定的变体之一@ GetMapping,@ PostMapping,@ PutMapping,@ DeleteMapping或@PatchMapping。

GetMapping仅适用于方法:

用于将HTTP GET请求映射到特定处理程序方法的注释。


https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/GetMapping.html

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.