@GetMapping
和@RequestMapping(method = RequestMethod.GET)
有什么区别?@GetMapping
代替 @RequestMapping
。
正如您所看到的这里:
具体来说,
是一个组合注释,充当@GetMapping
的快捷方式。@RequestMapping(method = RequestMethod.GET)
与@GetMapping
之间的区别@RequestMapping
支持@GetMapping
属性,例如consumes
。@RequestMapping
@RequestMapping
是班级级别
@GetMapping
是方法级别
带有 sprint Spring 4.3。事情已经发生了变化。现在您可以在处理 http 请求的方法上使用 @GetMapping。类级别的 @RequestMapping 规范通过(方法级别)@GetMapping 注解进行了细化
这是一个例子:
@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)
简短回答:
语义上没有区别。
具体来说,@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
`@RequestMapping` since 2.5
=> 适用于类和方法
=> 可以用作
@Controller
和
@RestController
的替代品,如果我们使用它 与
@Component
一起。
`@GetMapping` since 4.3
=> 仅适用于方法
@GetMapping
是
@RequestMapping(method = RequestMethod.GET)
的特定类型。两者都支持消耗
@RequestMapping
即使使用 method=GET 也支持消费,而 @GetMapping 不支持消费。
除此之外,@GetMapping 与 @RequestMapping(method=RequestMethod.GET) 相同
@GetMapping
是
@RequestMapping(method = RequestMethod.GET)
的快捷方式
@RequestMapping
是班级级别
@GetMapping
是方法级别
@RequestMapping
注释用于将Web请求映射到特定的处理程序类和函数。该注释的主要优点是它可以在控制器类和方法上使用。
@RequestMapping
时要具体,因为在大多数映射处理程序类中,不使用
@Getmapping
。