GetMapping 어노테이션으로 다중맵핑하기

출처 : Unsplash

@GetMapping 어노테이션은 HTTP GET 요청을 처리하는 메서드를 맵핑(@RequestMapping) 하는 어노테이션이다. 메서드(url)에 따라 어떤 페이지를 보여줄지 결정하는 역할을 한다.

참고로 스프링부트에서는 어떤 HTTP 메서드를 사용할지에 따라 RequestMapping 어노테이션을 아래의 어노테이션으로 구분해서 제공한다.

RequestMapping 어노테이션으로 사용가능하지만, 목적에 따라 아래 어노테이션으로 대체사용이 가능하다는 이야기이다.

  • @GetMapping : GET 요청을 하는 API의 어노테이션.
    • 데이터를 가져올 때 사용한다.
  • @PostMapping : POST 요청을 하는 API의 어노테이션
    • 데이터를 게시할 때 사용한다.
  • @PutMapping : PUT 요청을 하는 API의 어노테이션
    • 데이터를 수정할 때 사용한다.
  • @DeleteMapping : DELETE 요청을 하는 API의 어노테이션
    • 데이터를 삭제할 때 사용한다.
  • @PatchMapping : PATCH 요청을 하는 API의 어노테이션
    • 데이터를 수정할 때 사용한다.

PUTPATCH가 데이터를 수정한다는 측면에서는 비슷하나, PUT이 데이터 전체를 갱신하는 HTTP 메서드라면, PATCH는 수정하는 영역만 갱신하는 HTTP 메서드이다.


1
2
3
4
5
6
7
8
9
10
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GepMapping;

@Controller
public class homeController {
@GetMapping("/main")
public String index(){
return "index";
}
}

지금까지는 위의 코드처럼 @GetMapping 어노테이션으로 하나의 메서드만 처리했는데, 다중맵핑이 가능하다는 사실을 처음 알았다. 파라미터안에 value = { , } 형식으로 작성하면 다중맵핑이 가능했다.

웹 애플리케이션의 메인 페이지로 이동하는 3개의 키워드를 모두 index.html로 넘기고 싶어서 작성한 코드이다.

1
2
3
4
5
6
7
8
9
10
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class homeController {
@GetMapping(value = {"/", "/index", "/main"})
public String index(){
return "index";
}
}