스프링 4.3에 release된 annotation 중 mapping 관련하여 포스팅을 하려고 합니다.


먼저, @RequestMapping은 url을 통해 들어온 request를 method와 연결하여 주는 annotation이었습니다.


여기에, 속성으로 method를 지정하여 


method = RequestMethod.GET


method = RequestMethod.POST 형식으로 지정하여 주었습니다.




하지만, 이러한 불편함을 대체하여 주고, 코드의 가독성을 높여주는 annotation들이 spring 4.3 버전 이후로 출시가 되었습니다.


간단하게 코드로 알아보겠습니다.



@RequestMapping(value = "/" , method = RequestMethod.GET)
public String getMethod(HttpServletRequest request, HttpServletResponse response) {
return "";
}

@GetMapping("/test/get")
public String getMethod2(HttpServletRequest request, HttpServletResponse response) {
return "";
}

@PostMapping("/test/post")
public String postMethod(HttpServletRequest request, HttpServletResponse response) {
return "";
}

@PutMapping("/test/put")
public String putMethod(HttpServletRequest request, HttpServletResponse response) {
return "";
}

@DeleteMapping("/test/delete")
public String deleteMethod(HttpServletRequest request, HttpServletResponse response) {
return "";
}

@PatchMapping("/test/patch")
public String patchMethod(HttpServletRequest request, HttpServletResponse response) {
return "";
}

위의 방식으로 기존 @RequstMapping( value = "", method = RequestMethod.XXXX)를 간략히 쓸 수 있습니다.






/**
* 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 "";



@GetMapping의 소스를 조금 더 까보면

@RequestMapping(method = RequestMethod.GET)이 선언 되어 있는 것을 볼 수 있습니다.




[참조]


Http Rest Service 예제 

https://spring.io/guides/tutorials/bookmarks/


Spring @RequestMapping New Shortcut Annotations 예제

https://www.baeldung.com/spring-new-requestmapping-shortcuts


블로그 이미지

사용자 yhmane

댓글을 달아 주세요