반응형
@RequestMapping 어노테이션은 라우팅에 관한 정보를 제공합니다.
클래스 또는 메소드 레벨에서 사용할 수 있고, 이를 웹 request와 매핑하는 역할을 합니다.
사용할 수 있는 파라미터와 default 값은 위와 같습니다.
@RequestMapping(value = "/test")
public String test() {
...
}
위와 같은 형태로 사용할 때, /test에 접속하면 GET 방식으로 요청합니다.
@RequestMapping(value = {"/test1", "/test2"})
public String test() {
...
}
위처럼 두 가지 형태로도 접속할 수 있습니다. /test1 또는 /test2로 접속하면 test() 메소드가 호출됩니다.
@RequestMapping(value = "/test", method = {RequestMethod.GET, RequestMethod.POST})
public String test() {
return "test";
}
method parameter로 접속 방식을 선택할 수 있습니다.
위처럼 사용하면 GET 또는 POST 방식으로 요청했을 때 test() 메소드가 호출됩니다.
@RequestMapping(value = "/test/{temp1}")
public String test(@PathVariable("temp1") String temp1, @RequestParam("temp2") String temp2) {
// test/hihi?temp2=byebye 요청
System.out.println("temp1 = " + temp1); // output : temp1 = hihi
System.out.println("temp2 = " + temp2); // output : temp2 = byebye
...
}
위와 같이 URI에 파라미터를 줄 수 있습니다.
// reqVal이 "myVal"이면 호출
@RequestMapping(value = "/test", params={"reqVal=myVal"})
public String test(@RequestParam("reqVal") String reqVal) {
...
}
// reqVal이 "myVal"이 아니면 호출
@RequestMapping(value = "/test", params={"reqVal!=myVal"})
public String test(@RequestParam("reqVal") String reqVal) {
...
}
// 파라미터에 reqVal이 있으면 호출
@RequestMapping(value = "/test", params={"reqVal"})
public String test(@RequestParam("reqVal") String reqVal) {
...
}
// 파라미터에 reqVal이 없으면 호출
@RequestMapping(value = "/test", params={"!reqVal"})
public String test(@RequestParam("reqVal") String reqVal) {
...
}
파라미터의 값을 통해서도 요청을 구분할 수 있습니다.
위의 첫 번째 예시에서는 reqVal == myVal이어야 test method가 호출됩니다.
@RequestMapping(value = "/test", headers = "content-type=text/*")
public String test() {
...
}
위처럼 헤더값으로도 구분할 수 있습니다. "content-type"이 "text/*"면 요청을 받을 수 있습니다.
@RequestMapping(value = "/test", produces = "text/plain")
public String test() {
...
}
produces의 값으로 명시한 타입이 accept header에 포함되면 요청을 받을 수 있습니다. 해당 타입으로 응답됩니다.
@RequestMapping(value = "/test", consumes = {"text/plain", "application/*"})
public String test() {
...
}
consumes의 값으로 명시한 타입이 content-type header에 포함되면 요청을 받을 수 있습니다.
반응형
'Spring' 카테고리의 다른 글
스프링부트 웹소켓 stomp를 이용한 실시간 알림 구현 (0) | 2021.11.09 |
---|---|
스프링부트 Redis로 캐시 적용하기 (0) | 2021.11.09 |
스프링부트 JPA 무한스크롤 구현 (0) | 2021.11.09 |
스프링부트 JPA querydsl 대댓글(계층형 댓글) 기능 구현 (5) | 2021.11.09 |
Querydsl and, or 연산이 적용된 동적 쿼리 페이징 처리 (0) | 2021.11.09 |