Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- frontend
- node.js란
- Partition
- mariadb
- SSE
- node.js
- 개발자
- ServerSentEvent
- Lag
- 파티셔닝
- partitioning
- Node.js기본
- localStorage
- 실시간알림
- EventSource
- 성장기
- 열공하자
- PostgreSQL
Archives
- Today
- Total
써치킴의 우당탕탕 개발 블로그
[Spring Framework] MVC 처리순서 본문
- 클라이언트(Client)가 서버에 어떤 요청(Request)을 한다면 스프링에서 제공하는 DispatcherServlet 이라는 클래스(일종의 front controller)가 요청을 가로챈다.
- (web.xml에 살펴보면 모든 url ( / )에 서블릿 매핑을하여 모든 요청을 DispatcherServlet이 가로채게 해둠(변경 가능))
- 요청을 가로챈 DispatcherServlet은 HandlerMapping(URL 분석등..)에게 어떤 컨트롤러에게 요청을 위임하면 좋을지 물어본다.
- (servlet-context.xml에서 @Controller로 등록한 것들을 스캔해서 찾아준다.)
- 요청에 매핑된 컨트롤러가 있다면 @RequestMapping을 통하여 요청을 처리할 메서드에 도달한다.
- 컨트롤러에서는 해당 요청을 처리할 Service를 주입(DI)받아 비즈니스로직을 Service에게 위임한다.
- Service에서는 요청에 필요한 작업 대부분(코딩)을 담당하며 데이터베이스에 접근이 필요하면 DAO를 주입받아 DB처리는 DAO에게 위임한다.
- DAO는 mybatis(또는 hibernate등) 설정을 이용해서 SQL 쿼리를 날려 DB의 정보를 받아 서비스에게 다시 돌려준다.
- (이 때 보통 VO(dto)를 컨트롤러에서 부터 내려받아 쿼리의 결과를 VO에 담는다. (mybatis의 resultType)
- 모든 로직을 끝낸 서비스가 결과를 컨트롤러에게 넘긴다.
- 결과를 받은 컨트롤러는 Model객체에 결과물 어떤 view(jsp)파일을 보여줄 것인지등의 정보를 담아 DispatcherServlet에게 보낸다.
- DispatcherServlet은 ViewResolver에게 받은 뷰의 대한 정보를 넘긴다.
- ViewResolver는 해당 JSP를 찾아서(응답할 View를 찾음) DispatcherServlet에게 알려준다.
- (servlet-context.xml에서 suffix, prefix를 통해 /WEB-INF/views/index.jsp 이렇게 만들어주는 것도 ViewResolver)
- DispatcherServlet은 응답할 View에게 Render를 지시하고 View는 응답 로직을 처리한다.
- 결과적으로 DispatcherServlet이 클라이언트에게 렌더링된 View를 응답한다
'Spring Framework' 카테고리의 다른 글
[Spring Framework] Maven (0) | 2022.05.16 |
---|---|
[Spring Framework] Property 파일 다루기 (0) | 2022.05.16 |
[Spring Framework] Interceptor (0) | 2022.05.16 |
[Spring Framework] Bean 의존주입 Annotation (0) | 2022.05.16 |
[Spring Framework] Bean 등록 Annotation (0) | 2022.05.16 |
Comments