pooney
article thumbnail
Published 2020. 5. 15. 19:55
Spring boot Interceptor Spring boot

 

 

Interceptor 

 

 

interceptor 생성 

 

1. interceptor 패키기 생성  -> interceptor 클래스 생성 

 

 

HelloInterceprtor

package com.example.demo.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class HelloInterceptor extends  HandlerInterceptorAdapter {

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		System.out.println("Hi pooney >>>> pre+++++");
		return true;
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		System.out.println("Hi pooney >>>> post+++++");
		
	}
	
	

}

 

 

인터셉터 등록 

 

 

인터셉터를 사용하기 위하여 Sping에서 servlet.xml에 등록 했던것 처럼  Spring boot 또한 등록을 해야한다 이때 WebMvcConfigurer를 구현할 클래스가 필요하다 구현할 클래스는 root 패키지에 생성해야한다. root 패키지는 application.java가 있는 위치이다. 

 

 

1. WebMvcConfigurer를 구현할 클래스 WebMvcConfig 클래스 생성 

 

 

 

WebMvcConfig

이때 해당 설정파일을 Sping이 인식 할 수 있게 @Configuration을 삽입해야한다. 그리고 addInterceptors 메소드를 통해 인터셉터를 등록한다.

 

package com.example.demo;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import com.example.demo.interceptor.HelloInterceptor;


//설정파일이라고 sping에 알리기 위한 어노테이션 
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

	@Override
	public void addInterceptors(InterceptorRegistry registry) {
		//인터셉터를 등록하기 Sping의 servlet.xml에 인터셉터를 등록하는 작업과 같다.	
	
		registry.addInterceptor(new HelloInterceptor()).addPathPatterns("/hi");
	}
	
	

}

 

 

결과

 

hi를 요청한 결과 인터셉터가 정상적으로 pre, post를 출력하는 것을 확인 할 수있다.

 

profile

pooney

@pooney

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!