Springbootブロッキングとフィルタ構成(Maven)
3347 ワード
@Component // pojo spring ,
public class TimeInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println(((HandlerMethod)handler).getBean().getClass().getName());
System.out.println(((HandlerMethod)handler).getMethod().getName());
System.out.println(" Pre");
request.setAttribute("startTime",new Date().getTime());
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
System.out.println(" post");
System.out.println( " : " + (new Date().getTime() - (Long) request.getAttribute("startTime"))+" ");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
System.out.println(" afterCompletion ");
System.out.println( " : " + (new Date().getTime() - (Long) request.getAttribute("startTime"))+" ");
System.out.println("ex is" + ex);
}
}
-ここで@Componentについて説明しますが、Springによって管理されるようにwebConfigで再構成する必要があります.
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired //
private TimeInterceptor timeInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(timeInterceptor);
}
//
@Bean
public FilterRegistrationBean characterEncodingFilterRegister(){
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
CharacterEncodingFilter filter = new CharacterEncodingFilter("UTF-8");
filter.setForceEncoding(true);
registrationBean.setFilter(filter);
List urls = new ArrayList<>();
urls.add("/*");
registrationBean.setUrlPatterns(urls);
return registrationBean;
}
}
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*