주석 @GetMapping과 @RequestMapping의 차이점 (method = RequestMethod.GET)


152

차이 무엇 @GetMapping@RequestMapping(method = RequestMethod.GET)?
좀 봄 반응성 예에서 본 적이 @GetMapping대신 사용@RequestMapping

답변:


195

@GetMapping에 대한 단축키 역할을하는 구성된 주석입니다 @RequestMapping(method = RequestMethod.GET).

@GetMapping새로운 Annotaion입니다. 그것은 소비를 지원합니다

소비 옵션은 다음과 같습니다.

소비 = "text / plain"
소비 = { "text / plain", "application / *"}

자세한 내용은 GetMapping Annotation을 참조하십시오.

또는 읽기 : 요청 매핑 변형

RequestMapping은 소비도 지원합니다

GetMapping은 메소드 레벨에만 적용 할 수 있고 RequestMapping 주석은 클래스 레벨과 메소드 레벨에만 적용 할 수 있습니다.



3
뿐만 아니라 지원 소비하는을 RequestMapping : docs.spring.io/spring/docs/current/javadoc-api/org/...
가보 다니

22

당신이 볼 수 있듯이 여기 :

특히, @GetMapping에 대한 바로 가기 역할을하는 구성된 주석입니다 @RequestMapping(method = RequestMethod.GET).

@GetMapping&의 차이점@RequestMapping

@GetMappingconsumes와 같은 속성을 지원합니다 @RequestMapping.


14
좋은 소식! 2017 년 4 월 현재 , 연결된 Spring 웹 페이지에서 GetMapping 이제 '소비'및 일반적인 RequestMapping 속성을 지원합니다. 아마도 Spring은 게시물 뒤에 추가했을 것입니다.
devdanke

10

@RequestMapping 수업 수준입니다

@GetMapping 방법 수준입니다

스프린트 봄 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)

Craig Walls가 저술 한 책에서 추가로 읽음 Craig Walls가 저술 한 책에서 추가로 읽음


1
@RequestMapping도 메소드에 적용 할 수 있습니다.
ZhaoGang

그렇습니다. 그러나 @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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.