본문으로 바로가기

[Spring] Interceptor

category Program/Spring Framework 2022. 4. 20. 14:32

Controller의 Handler를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 일종의 필터

왜 사용하는가? 특정 Controller의 핸들러가 실행 되기전이나 후에 추가적인 작업을 할 때 인터셉터를 사용함.

ex)로그인체크, 권한체크 등

servlet-context.xml에 설정하면 스프링에서 일괄적으로 해당 url경로의 핸들러에 인터셉터를 적용함

  1. 사용자는 서버에 자신이 원하는 작업을 요청하기 위해 url을 통해 Request 객체를 보냄
  2. DispatcherServlet은 해당 Request 객체를 받아 HandlerMapping 에게 사용자의 요청을 처리할 핸들러를 찾도록 요청
  3. 핸들러 실행체(HandlerExecutonChanin)이 동작함. 이 실행체인은 하나이상의 핸들러 인터셉터를 거쳐 컨트롤러가 실행될 수 있도록 구성 되어있음.(핸들러 인터셉터를 등록하지 않았다면 곧 바로 컨트롤러가 실행됨)