본문 바로가기

Programming/[Spring]

[Spring] Spring MVC

Spring MVC
- Client가 Server에 어떠한 요청을 한다면 스프링에서 제공하는 DispatcherServlet이라는 클래스(front controller)가 요청을 가로챔
- 요청을 가로챈 DispatcherServlet은 HandlerMapping(URL 분석 등)에게 어떤 컨트롤러에게 요청할지 물어봄(servlet-context.xml에서 @Controller로 등록한 것들을 스캔해서 찾아줌)
- 요청에 매핑된 컨트롤러가 있다면 @RequestMapping을 통해 요청을 처리할 메서드에 도달
- 컨트롤러에서는 해당 요청을 처리할 Service를 주입(DI)받아 비즈니스 로직을 Service에게 위임
- Service에서는 요청에 필요한 작업 대부분을 담당하며 데이터베이스에 접근이 필요하면 DAO를 주입받아 DB처리는 DAO에게 위임
- DAO는 mybatis(or hibernate등) 설정을 이용해서 SQL 쿼리를 날려 DB의 정보를 받아 서비스에게 다시 돌려줌(DTO를 컨트롤러에서 부터 내려받아 쿼리의 결과를 VO에 담음)
- 모든 로직을 끝낸 서비스가 결과를 컨트롤러에게 넘김
- 결과를 받은 컨트롤러는 Model 객체에 결과물을 어떤 View(jsp)파일을 보여줄 것인지 등의 정보를 담아 DispatcherServlet에게 보냄
- DispatcherServlet은 ViewResolver에게 받은 뷰에 대한 정보를 넘김
- ViewerResolver는 해당 JSP를 찾아(응답할 View) DispatcherServlet에게 알려줌
- DispatcherServlet은 응답할 View에게 Render를 지시하고 View는 응답 로직을 처리
- DispatcherServlet이 Client에게 렌더링된 View를 응답

'Programming > [Spring]' 카테고리의 다른 글

[Spring] Spring Security  (0) 2022.03.24
[Spring] 자주 나오는 면접 질문  (0) 2021.12.21
[Spring] Maven  (0) 2019.06.12
[Spring] Springboot  (0) 2019.06.05
[Spring] 스프링 어드바이스 종류(Spring Advice)  (0) 2018.05.17