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 |
Tags
- api 아이템 리더
- JSONArray 분할
- 트랜잭션 분리
- 스프링배치 엑셀
- aop proxy
- 선언적 트랜잭션 관리
- job parameter
- 아이템 리더 커스텀
- 스프링배치 csv
- mybatis
- executioncontext
- flatfileitemwriter
- JSONObject 분할
- Spring Batch
- executioncontext 변수 공유
- 읽기 작업과 쓰기 작업 분리
- spring batch 5
- 스프링배치 메타테이블
- 스프링 트랜잭션 관리
- stepexecutionlistener
- JSON 분할
- spring batch 변수 공유
- 아이템 리더 페이징 처리
- step 사이 변수 공유
- JSON 분리
- step 값 공유
- 마이바티스 트랜잭션
- abstractpagingitemreader
- step 여러개
- 스프링 배치 5
Archives
- Today
- Total
ebson
[SPRING STUDY] dispatcher-servlet.xml 개요와 동작과정의 이해 본문
1. DispatcherServlet
- Spring MVC Framework의 유일한 Front Controller임.
- 디스패처 서브릿은 프론트 컨트롤러로서 클라이언트로부터의 모든 요청을 받은 후 세부 컨트롤러로 위임
- 프론트 컨트롤러란 서블릿 컨테이너(예를 들어, 톰캣)의 제일 앞단에서 서버로 오는 모든 요청을 받아 처리하는 컨트롤러임
- 디스패처 서블릿이 처리하는 url 패턴을 지정할 수 있는데 일반적으로 /*.do와 같이 정함
2. DispatcherServlet 생성
- 디스패처 서블릿은 스프링 MVC 웹프로젝트를 만들 때 자동 생성
- MAVEN기준, Resources > Libraries > Maven Dependencies > spring-webmvc-version.jar > org,springframework.web.servlet > DispatcherServlet.class
- 이상의 디스패처서블릿 클래스에 대한 설정파일을 만들 수 있음
- 1) web.xml에서 서블릿 클래스의 설정파일에 대한 위치를 설정
- 2) 설정한 위치에 파일을 생성 -> 리소스파일, jsp반환 접두-접미어 설정 등
3. DispatcherServlet 동작과정
- 1) 요청접수 : 프론트컨트롤러로서 http request를 받음(web.xml의 url-pattern 설정에따름)
- 2) 컨트롤러로 요청 위임 : 디스패처 서블릿으로 들어온 요청을 요청 정보를 참고해 컨트롤러에게 작업 위임(이때, HandlerMapping, HandlerAddapter 전략 사용)
- 3) 컨트롤러에서 작업 진행 : 요청을 위임받은 컨트롤러에서 작업 후, 다시 디스패처 서블릿으로 결과를 반환(뷰와 모델)
- 4) 모델을 참조한 채로 뷰 호출 : 디스패처 서블릿은 뷰 오브젝트에 모델을 넘겨주면서 최종 결과물을 생성
- 5) 최종 응답 : 디스패처 서블릿은 공통으로 진행해야 할 후처리 작업이 있는지 확인하고 HttpServletResponse에 있는 최종 결과를 서블릿 컨테이너에게 돌려주면 서블릿 컨테이너는 클라이언트에게 응답을 전송


4. DispatcherServlet 사용 시 장점
- 디스패처 서블릿은 web.xml의 역할을 매우 축소시켜주었음
- 1) @Controller 어노테이션을 사용시 스프링이 처리
- Servlet마다 객체를 생성하고 web.xml에 일일히 매핑하지 않아도 됨
- @RequestMapping어노테이션으로 주소를 연결하면 디스패처 서블릿에서 해당 컨트롤러의 함수로까지 연결해줌으로서 서블릿을 일일이 만들지 않아도 됨
- 2) 모든 주소의 공통적인 전처리, 후처리 작업 가능
- 주소마다 Servlet을 만들어 사용하면 매우 까다로운 작업
- 디스패처 서블릿을 사용하면 간단히 처리 가능
- <mvc:resources /> 등을 사용해 영역을 분리하면서 효율적인 리소스관리를 할 수도 있음 -> 확장성 제공
참고 출처
https://bimmm.tistory.com/16?category=855641
'DEV-STUDY, ETC.' 카테고리의 다른 글
WINDOWS link 개념과 사용 이유 (0) | 2023.01.16 |
---|---|
[SPRING STUDY] README.md (0) | 2022.09.04 |
log4j (0) | 2022.08.28 |
LG CNS DEVON FRAMEWORK (0) | 2022.08.28 |
데이터독(Datadog) (1) | 2022.08.28 |