본문 바로가기

공부 기록/Spring

[Spring] Filter

Filter

- 웹 어플리케이션에서 관리되는 영역

- 스프링부트 Framework에서 클라이언트의 요청/응답에 대해 최초/최종 단계의 위치에 존재하므로 요청/응답의 정보를 변경하거나 스프링에 의해 데이터가 변환되기 전의 순수한 클라이언트의 요청/응답 값을 확인할 수 있다.

- 유일하게 ServletRequest, ServletResponse의 객체를 변환할 수 있다.

- 주로 스프링 프레임워크의 요청/응답 로깅이나 인증과 관련된 로직들을 해당 필터에서 처리한다. => 서비스 비즈니스 로직과 분리시킨다.

  

Filter 사용하기

Filter를 상속 받은 GlobalFilter.java

import jakarta.servlet.*;
import jakarta.servlet.annotation.WebFilter;

import java.io.IOException;

@WebFilter(urlPatterns = "/api/user/*")
public class GlobalFilter implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        
        ... // 원하는 기능 구현
        
    }
}

  

메인 클래스에 @ServletComponentScan 추가

@SpringBootApplication
@ServletComponentScan // 추가
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}