티스토리 뷰
스프링 MVC
스프링 MVC 패턴은 비즈니스 로직과 뷰 로직을 분리하기 위해 탄생하였다.
- Model : 모델은 데이터를 주고받기 위해 사용한다.
- View : 필요한 데이터를 Model로 받아 화면 기능에만 집중하는 역할을 한다.
- Controller : 뷰에서 필요한 데이터를 비즈니스 로직을 실행하여 가져오는 역할을 한다. 모델에 데이터를 담아 뷰에게 전달한다
스프링 MVC 구조
![](https://imgur.com/UFb3pNb.png)
- 사용자의 요청을 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
- 트랜잭션격리성
- 기술면접
- ci/cd
- Travis CI
- 운영체제
- OS
- 람다식
- 인덱스
- level0
- AWS
- 파일업로드설정
- Java
- 트랜잭션
- Oracle
- N+1
- ddl-auto
- 네이버클라우드
- Til
- spring
- SpringSecurity
- CodeDeploy
- SpringGraphQL
- db
- 프로그래머스
- TCP
- JPA
- graphql
- EC2
- nginx
- ORA-27125
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함