nickjoIT
Spring interceptore, Spring filter 차이점 본문
1. 호출 시점이 다르다
- 둘다 컨트롤러가 호출되기 전에 호출되어 실행되지만, Filter는 Dispatcher가 호출되기전에, Interceptor는 Dispatcher가 호출되고 난뒤 호출 된다.
- 필터는 일반적으로 서블릿 컨테이너에서 제어하기 때문에 web.xml에서 정의하여야 하며, 스프링 애플리케이션에서 관리하는 빈을 DI로 받을 수 없다.
- 인터셉터는 dispatcher-servlet.xml에서 컨트롤러에 대해 인터셉터를 정의하며, 스프링 애플리케이션에서 관리하는 빈을 DI로 받아서 사용한다.
2. 멤버함수의 용도가 다름
1) Interceptor
- preHandle: 컨트롤러가 수행되기 전에 호출된다. 처리결과에 따라 이후 컨트롤러를 수행할지 여부를 boolean으로 return 한다.
- PostHandle: 컨트롤러가 수행된 후 View를 호출하기 전에 호출된다.
- AfterCompletion: View 작업까지 완료된 후 호출 된다. responseBody를 이용할 경우 UI에 이미 값을 전달 후 해당 부분이 호출 된다.
2) Filter
- init: 필터 인스턴스 초기화
- doFilter: 전/후 처리
- destroy: 필터 인스턴스 종료
[참고 사이트]
http://www.openeg.co.kr/483
'FRAMEWORK > SPRING' 카테고리의 다른 글
@Controller VS, @RestController, ResponseEntity (0) | 2018.02.05 |
---|---|
MVC1, MVC2 패턴의 차이점과 Spring MVC 구조 (3) | 2016.02.12 |
AOP (0) | 2016.02.06 |
Comments