nickjoIT

Spring interceptore, Spring filter 차이점 본문

FRAMEWORK/SPRING

Spring interceptore, Spring filter 차이점

nickjo 2016. 2. 12. 10:17

Spring Handler Interceptors

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