본문 바로가기
Spring

[스프링] mvc 패턴

by chu_dw 2023. 7. 4.

● mvc 패턴

모델 뷰 컨트롤러를 이용해 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자이 패턴

- 프론트 컨트롤러 패턴에 기초함

- 약한 결합도로 구성되어 유연하고 확장 쉬움

- 다양한 서드 파티 라이브러리 연계

- 애노테이션 도입으로 보급 확대

 

  -> 모델1 : jsp만 사용하여 개발하거나 java baen을 포함하여 개발하는 방식

 

-> 모델2 : 뷰와 비지니스 로직의 분리하여 개발하는 방식

 

-> 프론트 컨트롤러 패턴 : 클라이언트 요청을 별도의 프론트 컨트롤러에 집중

 

● 스프링 mvc 패턴

 

구성요소

- DispatchServlet : 프폰트 컨트롤러로 클라이언트의 모든 요청을 받아서 controller에게 전달

- HandlerMapping : url 요청 정보를 기준으로 어떤 컨트롤러를 실행할지 결정

- Controller : 클라이언트의 요청을 처리, 결과 dispatchServlet에 전달

- Model : 컨트롤러가 뷰에 넘겨줄 데이터 저장하기 위한 객체

- ViewResolver : controller 처리 결과를 생성할 뷰 결정

- View : controller 처리 결과 화면을 생성

 

spring stereotype annotation

- 스프링이 관리하는 컴포넌트를 나타내느 일반적인 스테레오 타입

(스테레오 타입: 고정적으로 적용되는 어노테이션 스프링 컨테이너가 식별 할때 사용)

 

 

● 스프링 mvc 환경 설정

 

라이브러리 설정 (pom.xml)

- spring-webmvn : 스프링 웹과 기타 스프링 프레임워크 의존 모듈에 대한 읜존 관계 처리

 

웹 어플리케이션 컨텍스트 등록 설정 (web.xml)

- ContextLoadListner 클래스 : 서블릿 컨테이너에 등록, 서비스 계층 이하의 빈 등록하기 위한 클래스

-DispatcherServlet 클래스 : 서블릿 컨테이너의 프론트 컨트롤러 등록, 컨트롤러의 빈을 등록하기 위한 클래스

 

DispatchServlet 설정 (servlet-context.xml)

- 패키지 내부에서 찾은 빈과 uri 매핑 (annotation-driven)

- 정적 리소스 파일 설정

 

ContextLoadListner 설정 (root-context.xml)

- @service 지정된 클래스를 빈으로 등록

 

 

● mvc 예외처리

 

컨트롤러 별로 예외 처리

- 컨트롤러의 메서드에서 예외가 발생했을 때의 예외 처리를 정의

- 별도의 예외 처리 메서드를 정의하고 그 메서드에 @ExceptionHandler 애노테이션 설정

 

 

하나의 웹 애플리케이션 안에서 공통된 예외 처리

- 복수의 컨트롤러에서 사용할 수 있는 공통된 예외 처리 클래스 정의

- 공통된 예외 처리 클래스를 정의하고 그 클래스에 @ControllerAdvice 애노테이션을 설정

'Spring' 카테고리의 다른 글

[스프링] MyBatis  (0) 2023.08.01
[스프링] REST 아키텍처  (0) 2023.08.01
[스프링] jdbc 추가  (0) 2023.04.10
[스프링] jdbc  (0) 2023.04.03
[스프링] di  (0) 2023.03.27