티스토리 뷰
프론트 컨트롤러 패턴 (스프링 MVC의 DispatcherServlet)
- 기존에는 모든 컨트롤러에 공통로직이 중복되었다.
- 요청을 받으면 공통 로직을 프론트 컨트롤러가 처리한 뒤 요청에 맞는 컨트롤러를 호출한다.
- 프론트 컨트롤러를 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 된다.
스프링 MVC
1. 프론트 컨트롤러 도입
- FrontController에서 Request의 URL에 따라 Request를 처리할 컨트롤러를 찾는다. (controllerMap)
- 해당 컨트롤러를 호출한다.
2. 중복되는 뷰의 로직 분리하기
- View 객체를 만들어서 뷰를 렌더링하는 함수 생성
- 컨트롤러에서는 뷰 객체를 생성해서 반환하고 프론트 컨트롤러에서 뷰 객체를 받아 render함수를 호출하면 뷰를 렌더링할 수 있다.
3. 모델 추가하기 (서블릿 종속성을 제거하고, 뷰 이름 중복을 제거하기)
-기존에는 request와 response를 모두 Controller에 전달했지만, request와 response는 컨트롤러에서 필요없는 데이터가 있다. 컨트롤러에서 필요한 데이터만 담은 객체(paramMap)를 만들어 이를 전달한다. 그리고 Controller는 View에 전달할 데이터만 담아 Model 객체로 반환해준다.
- 뷰에서 받는 url 경로 중 중복되는 부분이 있다. 이를 사용해서 viewResolver를 만들면 중복을 제거할 수 있다.
4. 어댑터를 사용해서 확장성 있게 설계하기
- 요청 url을 처리할 Handler를(Controller) 찾는다.
- supports 메서드로 해당 Handler를 처리할 수 있는 HandlerAdapter를 찾는다.
- HandlerAdapter 실행
Reference
인프런 : 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (김영한)
'dev_note > Spring' 카테고리의 다른 글
스프링 MVC 구조 이해하기 (0) | 2021.10.05 |
---|---|
Servlet & JSP & MVC Pattern (0) | 2021.09.02 |
서블릿 Http Request & Http Response (0) | 2021.08.29 |
웹 애플리케이션 이해하기 (0) | 2021.08.28 |
Spring AOP (0) | 2021.07.10 |
- Total
- Today
- Yesterday
- default interface
- Effective Java
- Spring
- spring boot
- orphanRemoval
- c#
- SpringBoot
- 토비의 스프링
- ASP.NET
- MSSQL
- JavaScript
- jQuery
- C# 문법
- 자바의 정석
- 스프링
- 스프링MVC
- JPA
- Nullable
- DataAnnotation
- OWIN
- 스프링 부트 테스트
- JpaRepository
- @Modifying
- 영속성
- 빌더 패턴
- 다이내믹 프록시
- Java
- 준영속
- 고아 객체
- uploadfive
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |