이 글에서는 Spring MVC에 대해 중점적으로 알아볼 예정이다.
Spring MVC는 스프링의 서브 프로젝트이다.
즉 스프링은 하나의 기능을 위해서만 만들어진 프레임워크가 아니라 '코어'라고 할수 있는 프레임워크에 여러
서브 프로젝트를 결합해서 다양한 상황에 대처할 수 있도록 개발되었다.
xml을 사용할 경우 아래와 같은 그림의 형태가 된다.
스프링에서는 3가지 config file이 존재한다.
이에 대해 간략하게 알아보자.
1. servlet-context.xml
2. root-context.xml
3. web.xml
모델 2방식은 로직과 화면을 분리하는 스타일의 개발 방식입니다.
이 방식에서는 사용자의 Request는 특별한 상황이 아닌 이상 먼저 Controller를 호출하게 됩니다.
이유는?
Controller는 데이터를 처리하는 존재를 이용해서 데이터(Model)을 처리하고
Response 할 때 필요한 데이터(Model)을 view 쪽으로 전달하게 됩니다.
좀 더 자세하게 도식화해서 보여드리겠습니다.
클라이언트의 모든 요청은 DispatcherServlet이 받는다.
DispatcherServlet은 handlerMapping을 통해서 해당하는 Controller를 실행 시킨다.
Controller는 적절한 서비스 객체를 호출 시킨다.
Service는 DB처리를 위해 DAO를 이용하여 데이터를 요청한다.
DAO는 mybatis를 이용하는 Mapper를 통해 작업 처리를 한다.
처리한 데이터가 mapper -> DAO -> Service -> Controller로 전달됨
Controller는 처리된 데이터를 View Resolver를 통해 전달 받을 View가 있는지 검색한다.
전달 받은 View가 있다면 View에게 처리된 데이터를 전달한다.
View는 처리된 데이터를 다시 DispatcherServlet에게 전달한다.
DispatcherServlet은 처리된 데이터를 클라이언트에게 전달한다.
출처 : https://min-it.tistory.com/7, 코드로 배우는 스프링 웹 프로젝트 개정판