본문 바로가기
Spring

Spring. Filter/Interceptor

by 리승우 2022. 10. 13.

서블릿 필터 , 인터셉터

웹개발을 할때 로그인 , 권한체크 등과 같이 공통적으로 처리해야할 로직이 생기는데 이때 중복되는 코드를 줄이기 위해 활용 가능한것이 3가지가 있다. 1. Filter 2. Interceptor   3. AOP 일단 흐름을 보면 filter -> interceptor -> AOP 순이다.

https://lh3.googleusercontent.com/bPYdo0ECpeFijsHEtmJPWXhUnmD9c4tu_gzWGXTnyy1y3zIj-DBL_tJ8pIsJjPJ_QiQ8pokkjg7grWKceQp9t8CxP4zusCIQ0FCi2_gfzPfmvQPWe6k8hHahdIoPdXkwaUft95EYhkFOCYbtLgfrhRIbhT0iPTKDTcsOujNBr3ZmXPk69qcTkvcXxQ

 

 

각각의 특징을 살펴보면

필터

  • 스프링 범위 밖에서 처리가 일어난다.
  • 웹 컨테이너에서 동작한다
  • J2EE 표준스펙기능
  • 디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전/후

인터셉터

  • 스프링이 제공하는 기술
  • 스프링 컨텍스트에서 동작,
  • 컨트롤러를 호출하기 전/후 스프링의 모든 빈에 접근이 가능

AOP는 비즈니스단의 메서드에서 조금 더 세밀하게 조정하고 싶을때 사용합니다.인터셉터나 필터와 달리 메소드 전후의 지점에 자유롭게 설정이 가능하고 인터셉터와 필터는 주소로 대상을 구분해서 걸러내야 하는 반면 AOP는 주소,파라미터,어노테이션 등 다양한 방법으로 대상을 지정할수있습니다.

대표적으로 필터(Filter)를 인증과 인가에 사용하는 도구로는 SpringSecurity가 있다. SpringSecurity의 특징 중 하나는 Spring MVC에 종속적이지 않다는 것인데, 이러한 이유로는 필터 기반으로 인증/인가 처리를 하기 때문이다.

'Spring' 카테고리의 다른 글

WebSocket / STOMP  (1) 2022.10.28
querydsl 사용법!  (0) 2022.10.27
Spring. 영속성이란 (persistence)  (0) 2022.10.13
Spring. JPA ORM 및 연관관계  (0) 2022.10.13
Spring. Form input값 DTO 자동 주입  (1) 2022.10.08

댓글