servlet 처리 과정
(1) client 요청
(2) dispatcher servlet 에서 해당 요청 처리
(3) client request에 대한 Handler mapping
(3.1) Request Mapping : RequestMappingHandlerAdpator가 수행
(3.2) Interceptor 처리
(3.3) Argument Resolver 처리 : 실제 데이터를 Controller에 넘겨주는 인터페이스
(3.4) message Converter 처리
filter vs interceptor vs AOP
- filter, interceptor : 서블릿 단위로 처리 vs AOP : 메소드 앞에서 Proxy 형태로 처리
- filter, interceptor : 주소로 처리 대상 지정 vs AOP : 주소, 파라미터, 애노테이션 등으로 처리 대상 지정
(1) filter :
- dispatcher serlvet 이전에 처리 , 스프링과 무관한 자원에 대해 동작
- web.xml 에 처리
- XSS 방어에 대한 요청 처리 등으로 사용
- init(), doFilter() , destroy()
(2) interceptor :
- dispatcher servlet - contoller 수행 이전에 동작
- 스프링 컨텍스트 내부에서 컨트롤러에 관한 요청과 응답에 대해 동작
- prehandler() : 메서드 실행 이전
- posthandler() : 메서드 실행 이후 & 뷰 렌더링 이전
- aftercompletion() : 뷰 렌더링 이후 처리
(3) AOP :
- 메소드의 전후 지점에서 동작
(3.1) Advice : JointPoint, ProceedingJoinPoint 를 파라미터로 받아서 처리
(3.2) Handler Interceptor : HttpSerlvetRequest, HttpServletResponse 를 파라미터로 받아서 처리
*AOP의 포인트컷
@Before: 대상 메서드의 수행 전
@After: 대상 메서드의 수행 후
@After-returning: 대상 메서드의 정상적인 수행 후
@After-throwing: 예외발생 후
@Around: 대상 메서드의 수행 전/후
'Study > Spring' 카테고리의 다른 글
Spring Batch에서 병렬 처리하기 (0) | 2022.06.20 |
---|---|
데코레이터 패턴, 프록시패턴 그리고 다이나믹 프록시 (0) | 2022.04.13 |
[스프링 웹 MVC 활용] 03. URI 패턴 및 요청 매개변수(단순 타입) (1) | 2022.03.01 |
[스프링 웹 MVC 활용] 02. 핸들러 메소드의 Argument와 Return 타입 (0) | 2022.03.01 |
[스프링 웹 MVC 활용] 01. HTTP Request 맵핑하기 (0) | 2022.03.01 |