본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : 스프링 인터셉터 - 요청 로그

by 오주현 2022. 2. 23.
반응형

String uuid = UUID.randomUUID().toString();

요청 로그를 구분하기 위해 uuid를 생성해 주었다.

 

//@RequestMapping: HandlerMethod
//정적 리소스 : ResourceHttpRequestHandler
if (handler instanceof HandlerMethod) {
    HandlerMethod hm = (HandlerMethod) handler; //호출할 컨트롤러 메서드의 모든 정보가 포함되어있다.
}

HandlerMethod는 어떤 핸들러 매핑을 사용하는가에 따라 달라진다. @controller와 @RequestMapping을 통한 핸들러 매핑을 주로 사용하는데 이 경우 핸들러 정보로 HandlerMethod가 넘어온다.

 

@Configuration
public class WebConfig implements WebMvcConfigurer {

WebMvcConfigurer를 구현한다.

 

@Override
public void addInterceptors(InterceptorRegistry registry) {
	registry.addInterceptor(new LogInterceptor())
        .order(1)
        .addPathPatterns("/**")
        .excludePathPatterns("/css/**", "/*.ico", "/error"); // 모든걸 허용하지만 이것들은 뺼거야..라는 뜼이다.
}

WebMvcConfigurer가 제공하는 addInterceptors()를 사용해 인터셉터를 등록할 수 있다.

 

위에서부터 인터셉터를 등록하고, order를 통해 인터셉터의 호출 순서를 지정하고(낮을 수록 먼저 호출됨), 인터셉터를 적용할 URL 패턴을 지정하고, 인터셉터에서 제외할 패턴을 지정한다.

 

필터와 비교했을 때 인터셉터는 addPathPatterns와 excludePathPatterns로 매우 정밀하게 URL 패턴을 지정할 수 있다.


스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.

반응형

댓글