Spring MVC

 

Spring MVC는 Spring Framework의 웹 애플리케이션 개발을 위한 모듈로, MVC(Model-View-Controller) 아키텍처 패턴을 기반으로 합니다.

Spring MVC는 웹 요청의 처리, 데이터 바인딩, 뷰 렌더링 등의 기능을 제공하여 웹 개발을 단순화하고 구조화합니다.

 

1. Spring MVC 아키텍처

Spring MVC의 주요 구성 요소는 다음과 같습니다.

  • DispatcherServlet: 모든 HTTP 요청을 받아 처리하는 중앙 컨트롤러입니다.
  • HandlerMapping: 요청 URL과 매핑되는 핸들러(컨트롤러)를 찾습니다.
  • Controller: 요청을 처리하고 모델을 업데이트하며, 뷰를 선택합니다.
  • ModelAndView: 컨트롤러에서 처리한 데이터와 뷰 정보를 담고 있습니다.
  • ViewResolver: 뷰 이름을 기반으로 실제 뷰 객체를 찾습니다.
  • View: 모델 데이터를 렌더링하여 응답을 생성합니다.

2. 컨트롤러

Spring MVC에서 컨트롤러는 요청 처리의 핵심 역할을 담당합니다. @Controller 어노테이션을 사용하여 클래스를 컨트롤러로 지정하고, 각 메서드에 @RequestMapping, @GetMapping, @PostMapping 등의 어노테이션을 사용하여 요청 URL과 HTTP 메서드를 매핑합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Controller
@RequestMapping(“/users”)
public class UserController {
    @GetMapping(“/{id}”)
    public String getUser(@PathVariable Long id, Model model) {
        // 사용자 정보 조회
        model.addAttribute(“user”, user);
        return “user”;
    }
    @PostMapping
    public String createUser(@ModelAttribute User user) {
        // 사용자 생성
        return “redirect:/users/” + user.getId();
    }
}
cs

 

3. 데이터 바인딩

Spring MVC는 요청 파라미터, 패스 변수, 요청 본문 등의 데이터를 객체에 자동으로 바인딩해주는 기능을 제공합니다.

@RequestParam, @PathVariable, @ModelAttribute, @RequestBody 등의 어노테이션을 사용하여 데이터 바인딩을 설정할 수 있습니다.

1
2
3
4
5
@PostMapping
public String updateUser(@RequestParam Long id, @ModelAttribute User user) {
    // 사용자 정보 업데이트
    return “redirect:/users/” + id;
}
cs

 

4. 뷰 리졸버

Spring MVC는 다양한 유형의 뷰 리졸버를 지원하여 뷰 이름을 기반으로 실제 뷰 객체를 찾아줍니다.

대표적인 뷰 리졸버로는 InternalResourceViewResolver(JSP), ThymeleafViewResolver(Thymeleaf), FreeMarkerViewResolver(FreeMarker) 등이 있습니다.

1
2
3
4
<bean id=“viewResolver” class=“org.springframework.web.servlet.view.InternalResourceViewResolver”>
    <property name=“prefix” value=“/WEB-INF/views/” />
    <property name=“suffix” value=“.jsp” />
</bean>
cs

 

5. 예외 처리

Spring MVC는 예외 처리를 위한 다양한 방법을 제공합니다.

@ExceptionHandler 어노테이션을 사용하여 컨트롤러 내에서 예외를 처리할 수 있고, @ControllerAdvice를 사용하여 전역적인 예외 처리를 구현할 수 있습니다.

1
2
3
4
5
6
7
8
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(UserNotFoundException.class)
    public String handleUserNotFoundException(UserNotFoundException ex, Model model) {
        model.addAttribute(“errorMessage”, ex.getMessage());
        return “error”;
    }
}
cs

 

Spring MVC는 웹 개발을 위한 강력하고 유연한 프레임워크로, 다양한 기능과 확장 포인트를 제공합니다.

Spring MVC를 활용하면 구조화되고 유지보수 가능한 웹 애플리케이션을 효과적으로 개발할 수 있습니다.

 

농협안심한우 정육 세절 1등급 국거리용 (냉장), 300g, 1팩
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다