[Spring] 시작부터 응답까지 흐름 분석


서비스 기동 시작
1. WAS가 구동되면서 web.xml이 로딩
2. web.xml에 등록되어 있는 ContextLoaderListener가 생성된다. ContextLoaderListener 클래스는 ServletContextListener 인터페이스를 구현하고 있으며, ApplicationContext를 생성하는 역할을 수행한다.
3. 생성된 ContextLoaderListener는 root-context.xml을 loading한다.
4. root-context.xml에 등록되어 있는 Spring Container가 구동된다. @Service, @Repository와 같은 어노테이션이나 DB관련 객체, DAO, VO 객체들이 생성된다.
서비스 기동 끝 & 요청 시작
5. 클라이언트로부터 웹 애플리케이션이 요청이 온다.
6. Filter 처리
7. DispatcherServlet(Servlet)이 생성하고(재사용), servlet-context.xml을 loading 한다. ViewResolver, HanderMapping, Controllers가 생성된다.
8. interceptor 처리
9. AOP 처리
10. DispatcherServlet은 HandlerMapping을 통해 Controller로 위임처리한다. (service() 메소드 실행)
11. 처리 후 controller는 view이름을 리턴
요청 끝 & 응답 시작
12. AOP 처리
13. interceptor 처리
14. Filter 처리
12. viewResoler를 통해 사용자에게 보여준다.
>> 참고 할 다른 글
[Spring] 컨테이너
1. 컨테이너: 특정 객체의 생성과 관리를 담당하며 객체 운용에 필요한 기능을 제공 (스프링도 일종의 컨테이너) 2. 스프링 컨테이너 종류 BeanFactory: applicationContext.xml에 등록된 bean객체를 생성,
gajy.tistory.com
2022.10.24 - [[공부] 원리] - [Spring] Filter, Interceptor, AOP 차이
[Spring] Filter, Interceptor, AOP 차이
1. Filter: 정제역할, 예) XSS filter 2. Interceptor: 가로채기 예) 권한관리 3. AOP: 관점 지향 프로그래밍 예) 로깅, 트랜젝션, 에러처리 -> 프로그래밍을 하다보면 공통적인 기능이 많이 발생합니다. 이러
gajy.tistory.com
2022.10.24 - [[공부] 원리] - [Spring] web.xml, servlet-context.xml, context-*.xml
[Spring] web.xml, servlet-context.xml, context-*.xml
1. web.xml : 설정을 위한 설정파일이다. 배포 기술자로써 영어로는 DD(Deployment Descriptor) 이다. 이 파일은 WAS(Web Application Server)가 최초 구동될 때 즉 톰켓이 최초 구동될 때 web.xml을 읽고 그에..
gajy.tistory.com
참고 자료:
https://doublesprogramming.tistory.com/84
https://minwan1.github.io/2017/10/08/2017-10-08-Spring-Container,Servlet-Container/