DevBoi

[Spring] HandlerInterceptor 본문

Develop/[Spring]

[Spring] HandlerInterceptor

HiSmith 2022. 5. 3. 17:55
반응형

HandlerInterceptor는, 특정한 URI 호출을 가로채는 역할을 한다.

이를 이용하여, 기존 컨트롤러의 로직을 수정하지 않고도, 사전이나 사후 제어가 가능하다.

 

preHandle

지정된 컨트롤러의 동작 이전에 수행할 동작

 

posthandle

지정된 컨트롤러의 동작 이후에 처리할 동작

Spring MVC의 dispatcher Servlet이 화면을 처리하기 전에 동작

 

afterCompletion

DispatcherServlet이 화면을 처리한 후에 동작

 

 

 

Filter 와 Interceptor의 차이는 Dispathcher Servlet이 실행된 이전이냐, 후이다의 차이다.

추가로 Filter는 웹 애플리케이션 내 동작하기 때문에 Spring context에 접근하기 어렵다.

반면 인터셉터는 스프링 내에서 동작하기 때문에 Spring Context에 접근하기 용이하다.

 

 

 

등록하는 방법은

WebMvcConfigurerAdapter를 상속받아서, addInterceptors를 오버라이드하여 구현하면된다.

해당 인터셉터에 대한 내용 추가와, 적용패턴 제외 패턴을 설정해주면 된다.

 

 

이런방식으로 로그인 언터셉터도, 

세션에 get,set을 하고 사용자의 로그인 성공여부를 알리는 값을 넣어준다.

이건 session을 단순히 볼 수도있지만, 실무에서는 거의? redis방식으로  넣어서 사용한다.

예를 들면 로그인 성공여부를 redis에 넣고 필요할때마다 redis의 값을 가져와서 로그인 여부를 체크한다.

반응형

'Develop > [Spring]' 카테고리의 다른 글

[Spring] HandlerInterceptor  (0) 2022.05.10
[Springboot] logging 전략 관련 주저리...  (0) 2022.05.09
[Spring] ControllerAdvice  (0) 2022.05.02
@SessionAttribute에 대해서  (0) 2022.04.29
[Spring] static 과 스프링 빈의 차이  (2) 2022.04.29