[Spring - 어노테이션(Annotation) ] @RequestMapping, @GetMapping, @PostMapping, @RequestMapping → url 처리
@RequestMapping
method는 아래의 @GetMapping과 @PostMapping으로 설명을 하고 있으니 생략을 하겠다. @Mapping에서는 produces와 consumes이 존재하는데 이것은 어떤 기능을 하는지 살펴보자. 바로 말하자면 JSON을 사용하기 위한 것이다.
참고로 아래와 같이 선언하여 둘 다 쓰일 수 있다.
( consumes = MediaType.APPLICATION_JSON_UTF8_VALUE,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
- produces (보통 이렇게 쓰인다, produces = MediaType.APPLICATION_JSON_UTF8_VALUE )
HTTP 응답 헤더로 "Content-Type: application/json;charset=UTF-8"을 반환한다.
생략할 경우 메써드 리턴 타입에 따라 Content-Type을 자동으로 판단하여 반환한다. - consumes (보통 이렇게 쓰인다, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
HTTP 요청 헤더가 "Content-Type: application/json;charset=UTF-8"인 것만 처리한다.
다른 값이 들어올 경우 org.springframework.web.HttpMediaTypeNotSupportedException을 발생시킨다.
HTTP 요청 헤더에 명시된 Content-Type은 HTTP 요청 바디의 형식을 의미한다. 즉, 서버에서는 JSON 형식의 바디만 처리하겠다는 의미이다.
참고로 GET 요청은 바디를 가지지 않으므로 파라미터를 명시할 필요가 없다.
@GetMapping, @PostMapping
@RequestMapping(method = RequestMethod.GET) 의 축약형으로써, 애너테이션만 보고 무슨 메소드 요청인지 바로 알아볼 수 있다.
@RequestMapping
'◽ Spring, SpringBoot' 카테고리의 다른 글
[Spring - 어노테이션(Annotation) ] @RequestParam, @PathVariable → get방식으로 객체 받기 (0) | 2019.08.15 |
---|---|
[Spring - 어노테이션(Annotation) ] @Repository → DAO 인식, @Service → Service 인식 (0) | 2019.08.15 |
[Spring - 어노테이션(Annotation) ▶ HTTP 요청(1) ] @RequestBody, @ResponseBody → HTTP 요청의 body를 자바 객체로 매핑 (0) | 2019.08.15 |
[Spring - 어노테이션(Annotation) ] @Component → xml 빈 등록 (0) | 2019.08.15 |
[Spring - 어노테이션(Annotation) ] @Autowired, @Inject, @Resource → 종속성 주입 (0) | 2019.08.15 |
[Spring] VO, DTO 차이 (0) | 2019.08.13 |
[Spring - (15) ] 인터셉터(Interceptor) (0) | 2019.08.12 |