스프링 인터셉터 생성 및 사용

Web Development assistant·2024년 1월 22일
0

# spring

목록 보기
28/32
post-custom-banner

인터셉터 생성 및 사용

//인터셉터 구현
public class LogInterceptor implements HandlerInterceptor {
   @Override
   public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
   		String requestURI = request.getRequestURI();
   		String uuid = UUID.randomUUID().toString();
     	request.setAttribute(LOG_ID, uuid);
        
   		//@RequestMapping: HandlerMethod
   		//정적 리소스: ResourceHttpRequestHandler
   		if (handler instanceof HandlerMethod) {
   			HandlerMethod hm = (HandlerMethod) handler; //호출할 컨트롤러 메서드의 모든 정보가 포함되어 있다.
   		}
   		log.info("REQUEST [{}][{}][{}]", uuid, requestURI, handler);
        
   		return true; //false 진행X, 따라서 항상 true,
 }



 //인터셉터 등록
@Configuration //스프링 설정 클래스를 정의시. 부트에는 필요없다고 한다. 하지만 등록할것
public class WebConfig implements WebMvcConfigurer {
  
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
       registry.addInterceptor(new LogInterceptor())
       .order(1)
       .addPathPatterns("/**")	//모든 url 등록
       .excludePathPatterns("/css/**", "/*.ico", "/error");	//그중 제외할 url (필수)
       
       registry.addInterceptor(new LoginCheckInterceptor())	//여러개 있는 경우 순서 등록
       .order(2)
       .addPathPatterns("/**")
       .excludePathPatterns(
       "/", "/members/add", "/login", "/logout",
       "/css/**", "/*.ico", "/error"
       );
   	}
   //...
}
post-custom-banner

0개의 댓글