import lombok.extern.slf4j.Slf4j;
@Slf4j
public class MyClass {
public void doSomething() {
log.info("This is an info log message");
log.error("This is an error log message");
}
}
@RestController
public class RequestMappingController {
@RequestMapping(value = "/v1", method = RequestMethod.GET)
public String exampleV1() {
return "this is sparta!";
}
}
@GetMapping(value = "/v2")
public String exampleV2() {
return "this is sparta!";
}
그렇다면 @RequestMapping은 언제 사용하나 ?
@RequestMapping을 Class 선언부 위쪽에 적어줘서 해당 클래스 내 모든 요청 핸들러 메서드의 URL에 고정적으로 사용할 기본경로로 붙게 된다.
예를 들어, 클래스에 @RequestMapping("/prefix")가 있고, 그 안에 @GetMapping("/example") 메서드가 있다면, 실제 접근 가능한 URL은 /prefix/example가 된다. 이를 통해, 관련된 여러 API 엔드포인트에 공통된 경로를 쉽게 부여할 수 있고, 코드의 가독성을 높여 유지보수를 편하게 할 수 있다.
@RequestMapping("/posts")
@RestController
public class PathVariableController {
// postId로 된 post 단건 조회
@GetMapping("/{postId}")
public String pathVariableV1(@PathVariable("postId") Long data) {
// logic
String result = "PathvariableV1 결과입니다 : " + data;
return result;
}
}
@RequestMapping("/posts")
@RestController
public class PathVariableController {
// 변수명과 같다면 속성값 생략가능
@GetMapping("/{postId}")
public String pathVariableV2(@PathVariable Long postId) {
// logic
String result = "PathvariableV2 결과입니다 : " + postId;
return result;
}
}