티스토리 뷰

스프링 MVC
스프링 MVC 패턴은 비즈니스 로직과 뷰 로직을 분리하기 위해 탄생하였다.
- Model : 모델은 데이터를 주고받기 위해 사용한다.
- View : 필요한 데이터를 Model로 받아 화면 기능에만 집중하는 역할을 한다.
- Controller : 뷰에서 필요한 데이터를 비즈니스 로직을 실행하여 가져오는 역할을 한다. 모델에 데이터를 담아 뷰에게 전달한다
스프링 MVC 구조

- 사용자의 요청을 DispatcherServlet을 통해 받은 후 핸들러 매핑(HandlerMapping)을 통해 요청 URL에 매핑되는 컨트롤러를 조회한다. 핸들러 매핑은 요청과 적합한 컨트롤러(핸들러)를 선택 후 DispatcherServlet에게 전달한다.
- DispatcherServlet은 컨트롤러를 리턴받고 컨트롤러에 대한 실행을 핸들러 어댑터에게 요청한다.
- 핸들러 어댑터는 비즈니스 로직을 실행한 후 결과를 ModelAndView에 담아 DispatcherServlet에게 리턴한다.
- DispatcherServlet은 ViewResolver을 호출하여 반환할 view를 선택하고 View 객체에게 응답 결과 생성을 요청한다.
HandlerMapping : 핸들러 매핑
핸들러 매핑은 스프링 빈의 이름으로 핸들러를 찾을 수 있다.
- RequestMappingHandlerMapping : @RequestMapping 설정이 되어있는 컨트롤러를 찾는다.
- BeanNameUrlHandlerMapping : RequestMappingHandlerMapping 로 핸들러를 찾을 수 없는 경우 BeanNameUrlHandlerMapping 을 이용하여 핸들러를 선택한다.
HandlerAdapter : 핸들러 어댑터
핸들러 매핑으로부터 받은 핸들러를 실행시키기 위해서는 핸들러 어댑터가 필요하다.
- RequestMappingHandlerAdapter : 애너테이션 기반의 컨트롤러인 @RequestMapping에서 사용한다.
- HttpRequestHandlerAdapter : HttpRequestHandler 처리
- SimpleControllerHandlerAdapter : Controller 인터페이스 처리
'Spring' 카테고리의 다른 글
| Spring Boot 에서 GraphQL 사용하기 (1) (0) | 2022.11.13 |
|---|---|
| [Spring] MultipartFile를 이용한 스프링 파일 업로드(feat. AWS S3) (0) | 2022.01.27 |
| [Spring] Spring Security 프레임워크 (2) : Spring Security 인증인가 동작과정 (0) | 2022.01.20 |
| [Spring] Spring Security 프레임워크 (1) (0) | 2022.01.19 |
| [Spring] 스프링 Environment 인터페이스 (0) | 2021.12.23 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- db
- 람다식
- nginx
- 인덱스
- OS
- 파일업로드설정
- 네이버클라우드
- 트랜잭션
- SpringSecurity
- AWS
- Til
- SpringGraphQL
- Java
- EC2
- 트랜잭션격리성
- graphql
- level0
- ddl-auto
- 기술면접
- spring
- JPA
- 프로그래머스
- ci/cd
- Oracle
- Travis CI
- TCP
- 운영체제
- ORA-27125
- N+1
- CodeDeploy
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
글 보관함