[Spring] Interceptor

    출처 = 인프런  [윤재성 강사님의 스프링MVC 강의]

     

    Interceptor

    Spring Framework의 AOP를 활용한 Spring MVC의 요소

     

    Interceptor는 요청 주소에 대해 관심을 갖고 요청이 발생하게 되면 요청 주소를 확인하여 Controller의 메소드를 호출하기 전이나 후에 다른 메서드를 호출 할 수 있도록 가로채는 개념

     

    스프링은 기본적으로 WEB의 요청을 CONTROLLER가 가져가지만, AOP는 요청된 값을 전 혹은 후에 낚아채는 개념이다.

    이와 비슷하게 인터셉터는 컨트롤러에게 넘어가기 전에, 값을 컨트롤러에게 넘길 것인지, 말 것인지 결정짓는 역할을 하게 된다.

     

     

    요청 발생 시 호출되는 메소드의 코드가 중복 되는 부분이 있을 때 Interceptor를 처리하게 되면 피할 수 있게 된다.

     

    로그인 여부 확인, 등급별 서비스 사용 권한 확인 등의 작업을 처리할 때 많이 사용.

     

    Interceptor는 java 프로젝트와 XML 프로젝트의 셋팅 방법이 각각 다르다.

     

     

     

    Interceptor 구현

    Interceptor는 HandlerInterceptor 인터페이스를 구현하거나

    HandlerIntercptorAdapter를 상속받은 클래스를 만들고 다음 메서드를 구현

     

    preHandle : Controller의 메서드가 호출되기 전 호출, 이 메서드가 false를 반환하면 코드의 흐름이 중단.

     

    postHandle : Controller의 메서드의 수행이 완료되고 view 처리를 수행하기 전에 호출.

     

    afterCompletion : view 처리까지 완료되고 응답결과가 브라우저로 전달되기 전에 호출

     

     

    Interceptor를 상속받아 상황에 따라 사용하면 편리하다.

    반응형

    댓글

    Designed by JB FACTORY