Spring MVC는 모던 웹 애플리케이션 개발을 위한 강력한 프레임워크입니다. 이 프레임워크는 다양한 어노테이션을 제공하여, 개발자가 웹 애플리케이션의 컴포넌트를 쉽게 정의하고 관리할 수 있게 합니다. 이 글에서는 Spring MVC의 주요 어노테이션과 각각의 용도에 대해 설명하고, 예시 코드를 통해 그 사용법을 살펴보겠습니다.
@Controller
@Controller 어노테이션은 클래스가 Spring MVC 컨트롤러로서 동작하도록 지정합니다. 이 컨트롤러는 웹 요청을 처리하고, 모델 객체를 뷰에 전달하며, 뷰 이름을 반환합니다.
@Controller
public class GreetingController {
@GetMapping("/greeting")
public String greeting(Model model) {
model.addAttribute("message", "Hello, Spring MVC");
return "greeting"; // 뷰 이름 반환
}
}
@RequestMapping
@RequestMapping 어노테이션은 요청 URL을 컨트롤러의 메서드와 매핑합니다. @GetMapping, @PostMapping, @PutMapping, @DeleteMapping 등 HTTP 메서드 별로 특화된 어노테이션도 사용할 수 있습니다.
@Controller
public class UserController {
@PostMapping("/users")
public String addUser(User user) {
// 사용자 추가 로직
return "redirect:/users";
}
}
@RequestParam
@RequestParam 어노테이션은 HTTP 요청 파라미터를 컨트롤러 메서드의 파라미터로 바인딩합니다.
@GetMapping("/greeting")
public String greeting(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) {
model.addAttribute("message", "Hello, " + name);
return "greeting";
}
@PathVariable
@PathVariable 어노테이션은 URI의 일부를 메서드의 파라미터로 바인딩하는 데 사용됩니다. 주로 RESTful 서비스에서 리소스를 식별하는 데 사용됩니다.
@GetMapping("/users/{id}")
public String getUser(@PathVariable("id") Long id, Model model) {
User user = userService.findById(id);
model.addAttribute("user", user);
return "userProfile";
}
@RequestBody
@RequestBody 어노테이션은 HTTP 요청의 본문(body)을 Java 객체로 바인딩하는 데 사용됩니다. 주로 JSON 또는 XML 데이터를 받을 때 사용됩니다.
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user) {
User savedUser = userService.save(user);
return new ResponseEntity<>(savedUser, HttpStatus.CREATED);
}
@ModelAttribute
@ModelAttribute 어노테이션은 HTTP 요청 파라미터를 객체에 바인딩하고, 모델에 자동으로 추가합니다. 폼 데이터 처리에 주로 사용됩니다.
@PostMapping("/users")
public String addUser(@ModelAttribute User user, Model model) {
userService.save(user);
return "redirect:/users";
}
@Service
@Service 어노테이션은 비즈니스 로직을 처리하는 서비스 계층의 컴포넌트를 정의합니다. 이 어노테이션은 주로 서비스 클래스에 사용됩니다.
@Service
public class UserService {
public User findById(Long id) {
// 사용자 조회 로직
}
}
결론
Spring MVC의 어노테이션들은 웹 애플리케이션 개발의 생산성을 대폭 향상시킵니다. 컨트롤러의 정의, 요청 매핑, 데이터 바인딩 등 다양한 작업을 어노테이션을 통해 간결하고 명확하게 표현할 수 있습니다. 이러한 Spring MVC의 어노테이션을 적극 활용하여, 보다 유지보수가 쉽고 확장 가능한 애플리케이션을 구축해 보세요.
'Spring' 카테고리의 다른 글
Spring Security: 인증과 권한 관리의 강력한 솔루션 (22) | 2024.03.15 |
---|---|
Spring MVC를 활용한 RESTful API 개발: 강력하고 유연한 웹 서비스 구축 (22) | 2024.03.14 |
Spring MVC: 현대 웹 애플리케이션 개발의 근간 (26) | 2024.03.14 |
Spring AOP(Aspect-Oriented Programming): 관심사의 분리로 코드 품질 향상 (24) | 2024.03.13 |
Spring Security: 보안의 복잡성을 해결하는 강력한 프레임워크 (20) | 2024.03.13 |