Programming/Spring
Interceptor
Albothyl
2019. 3. 27. 20:51
1. create some interceptor class
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.WebContentInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Slf4j
public class SomeInterceptor extends WebContentInterceptor {
@Autowired
private SomeRequestProxy someRequestProxy;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
log.info("SomeInterceptor preHandle");
someRequestProxy.setPre("SomeInterceptor setPre");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
log.info("SomeInterceptor postHandle");
someRequestProxy.setPost("SomeInterceptor setPost");
log.info(someRequestProxy.toString());
}
}
2. create some interceptor bean
@Bean
public SomeInterceptor someInterceptor() {
return new SomeInterceptor();
}
3. regiest some interceptors
public class SomeConfiguration extend WebMvcConfigurerAdapter {
...
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(someInterceptor());
}
}
Interceptor는 controller 이전 / 이후 단계에서 특정 데이터나 비지니스를 처리할 경우 사용한다.