스프링 프레임워크를 사용하면서 가장 핵심이 되는 것 중 하나가 바로 @RequestMapping 어노테이션입니다. 이 글에서는 @RequestMapping 어노테이션의 역할과 사용법을 간단한 예제와 함께 알아봅시다.스프링 프레임워크를 사용하면서 가장 핵심이 되는 것 중 하나가 바로 @RequestMapping 어노테이션입니다.
@RequestMapping 이란?
@RequestMapping은 스프링 프레임워크에서 제공하는 주요 어노테이션 중 하나로, 클래스나 메서드에 적용되어 해당 클래스나 메서드가 HTTP 요청을 처리하도록 매핑합니다. 이 어노테이션은 요청 URL, HTTP 메서드, 헤더 및 매개변수 등의 요청 속성에 따라 요청을 특정 컨트롤러 메서드에 매핑합니다. 스프링에서는 @RequestMapping을 기반으로 한 구체적인 어노테이션들도 제공하는데, @GetMapping, @PostMapping, @PutMapping, @DeleteMapping 등이 그 예입니다.
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
// 기본적인 사용 예제
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String hello() {
return "Hello, World!";
}
// 다양한 요청 메서드 처리
@RequestMapping(value = "/greeting", method = {RequestMethod.GET, RequestMethod.POST})
public String greeting() {
return "Hello, World!";
}
// 다른 HTTP 메서드로 매핑된 구체적인 어노테이션 사용 예제
// @GetMapping 사용
@GetMapping("/welcome")
public String welcome() {
return "Welcome!";
}
// @PostMapping 사용
@PostMapping("/create")
public String create() {
return "Create!";
}
}
위 예제에서는 @RestController 어노테이션을 사용하여 MyController 클래스를 스프링의 REST 컨트롤러로 정의하였습니다. 그리고 다양한 매핑 어노테이션을 사용하여 메서드를 정의하였습니다. 첫 번째 메서드인 hello()는 /hello URL에 대한 GET 요청을 처리하며, 두 번째 메서드인 greeting()는 /greeting URL에 대한 GET 및 POST 요청을 처리합니다. 이후에는 @GetMapping과 @PostMapping을 사용한 예제를 확인할 수 있습니다.
이러한 어노테이션을 활용하면 웹 애플리케이션의 다양한 요청 처리를 손쉽게 구현할 수 있습니다.
물론, @RequestMapping 외에도 스프링 프레임워크에서 제공하는 다양한 어노테이션들이 있습니다. 이들을 활용하면 더욱 강력한 웹 애플리케이션을 구축할 수 있으며, 애플리케이션의 유지 보수와 확장성도 향상됩니다.
스프링 프레임워크를 사용하면서 @RequestMapping과 관련된 다른 어노테이션들도 알아보면 좋을 것 같습니다. 예를 들어, @PathVariable, @RequestParam, @RequestBody 등의 어노테이션들은 요청의 매개변수를 처리하는데 유용하며, @ResponseStatus, @ResponseBody, @ExceptionHandler 등의 어노테이션들은 응답 및 예외 처리에 사용됩니다.
'Spring' 카테고리의 다른 글
Spring Annotation 6. @Autowired (0) | 2023.04.19 |
---|---|
Spring Annotation 5. @RequestParam (0) | 2023.04.19 |
Spring Annotation 4. @PathVariable (0) | 2023.04.19 |
Spring Annotation 3. @ResponseBody (0) | 2023.04.19 |
Spring Annotation 1. @Controller (0) | 2023.04.19 |
댓글