Spring MVC, 동작 원리

2021. 5. 2. 21:31Spring

반응형

안녕하세요.

오늘은 Spring MVC의 동작 원리에 대해 아주 간단하게 정리해볼까 합니다.

길게 적을만한게 없어서, index도 생략할게요.

 

 

💎  Spring MVC ? 

먼저 Spring MVC는 스프링의 서브 프로젝트로, Servlet/JSP 보다 빠른 웹 개발이 가능합니다. 
아무래도 국내에서 많이 사용하는 이유 중 큰 비중이 전자정부 표준 프레임워크라는 점이죠.

 

 

Spring MVC는 크게 일반 자바 영역과 Web 관련영역으로 나뉘어져 있어요.

 

흔히 xml로 설정할 때 일반 자바 설정

applicationContext.xml (intelliJ) 혹은 root-context.xml (eclipse) 에서,

 

Web부분을 설정할 땐

dispatcher-servlet.xml (intelliJ)  혹은 servlet-context.xml (eclipse) 에서 작업하죠.

 

설정 관련 xml에서는 web.xml도 있는데요.

web.xml은 Tomcat과 관련된 부분입니다.

 

 

전체적인 구조를 확인해보면 아래의 그림과 같습니다.

 

 

 

기능 별로 모듈화하여 개발할 수 있어 유지보수에 쉽다는 장점이 있죠.

 

 

그렇다면, 스프링은 어떻게 사용자의 요청을 받아서

적절한 컨트롤러를 찾고 적절한 Bean 들을 찾아 데이터를 가져올까요?

 

 

 

⚙️  기본 동작 방식

 

✔️ 첫 번째, DispatcherServlet

 

 

가장 먼저, Client가 요청을 보내면 DispatcherServlet 클래스의 객체가 요청을 받습니다.

 

 

 

 

✔️ 두 번째, HandlerMapping

 

 

그 다음 DispatcherServlet은 요청을 HandlerMapping에게 던지게 되고,

HandlerMapping은 여러개의 controller 파일 중,

request에 해당하는  적합한 controller를 찾아서 연결합니다.

 

 

✔️ 세 번째, HandlerAdapter

 

 

 

HandlerMappring이 적합한 Controller를 찾으면,

다시 DispatcherServlet으로 돌아와서 HandlerAdapter에게 요청을 보냅니다.

HandlerAdapter은 controller의 메소드들 중 요청에 맞는 적합한 메소드를 매칭합니다.

 

 

✔️ 네 번째, ViewResolver

 

 

그 다음으로 ViewResolver를 찾아서 적합한 View를 찾습니다.

그리고 나서 마지막으로 View를 Response로 반환합니다.

 

 

전체적으로 확인하면 아래와 같습니다.

 

 

 

그럼 오늘의 포스팅은 여기까지 하고 마치도록 하겠습니다.

 

 

반응형

'Spring' 카테고리의 다른 글

@ExceptionHandler, @ControllerAdvice  (3) 2022.03.08
Spring Exception, 제대로 처리하기  (0) 2022.03.06
Spring, 3-Tier-Architecture  (0) 2021.05.06
Spring MVC, DB 연결하기  (0) 2021.04.18
Spring MVC, 어렵지 않게 만들기  (0) 2021.04.09