Servlet filter(서블릿 필터)
- 스프링 프레임워크어ㅘ 무관하게 지정된 자원에 대해 동작.
스프링은 Dispatcher Servlet 으로부터 시작되므로 서블릿필터는 스프링 컨텍스트 밖에 존재.
인터셉터(Intercepter)
- 스프링의 DispatcherServlet이 컨트롤러를 호출할 때 전후로 끼어든다.
- 스프링 컨텍스트 내부에 존재.
인터셉터의 메소드 4개
preHandle()
- 컨트롤러 메소드 실행 직전에 수행, true를 반환하면 계속 진행되고, false를 리턴하면 실행체인(다른 인터셉터,컨트롤러 실행)이 중지되고 반환. 필터의 응답처리가 있다면 그것은 실행.
postHandle()
- 컨트롤러 실행 직후에 실행.
- View 페이지가 렌더링 되기 전에 ModelAndView 객체 조작 가능.
afterCompletion()
- View 페이지가 렌더링 된 후에 실행
afterConcurrentHandlingStarted()
- 비동기 요청시 postHandle과 afterCompletion은 실행되지 않고 이 메소드가 실행.
Advice (어드바이스) - AOP 에서 뽑아낸 공통된 코드들
JoinPoint - 어드바이스를 끼울 위치
Pointcut - joinpoint의 모음
Weaving(위빙, =CrossCutting) - Advice를 Joinpoint에 끼워넣는 작업
Advisor - Spring에만 존재한다. 어드바이스와 포인트컷을 한데 붂어 다룸.
Advice의 어노테이션, 메소드
@Before - Joinpoint 전에서 실행
@Around - Joinpoint 전, 후에서 실행
@After - Joinpoint 호출이 리턴되기 전에 실행
@AfterReturning - Joinpoint 메소드 호출이 정상적으로 종료된 뒤에 실행
@AfterThrowing - 예외가 발생했을 때 실행.
'Spring Framework' 카테고리의 다른 글
SQL - Index 인덱스 (0) | 2020.06.28 |
---|---|
AOP - 어드바이스(Advice) & 인터셉터(Intercepter) (0) | 2020.06.28 |
JPA (Java Persistence API) (0) | 2020.06.08 |
댓글