Spring boot 提供了FilterRegistrationBean类来注册Filter过滤器,并可以通过setOrder()方法指定顺序(使用@Order的效果是一样)
@Bean
@Order
public FilterRegistrationBean<Filter> webCommonFilter() {
FilterRegistrationBean<Filter> filter = new FilterRegistrationBean<Filter>();
filter.setFilter(new CommonsRequestLoggingFilter());
//filter.setUrlPatterns(urlPatterns);
//filter.setOrder(order);
return filter;
}
//或者
@Bean
@Order
public FilterRegistrationBean<Filter> webCommonFilter() {
FilterRegistrationBean<Filter> filter = new FilterRegistrationBean<Filter>();
ServletContextRequestLoggingFilter servletContextRequestLoggingFilter = new ServletContextRequestLoggingFilter();
servletContextRequestLoggingFilter.setIncludeClientInfo(true);
servletContextRequestLoggingFilter.setIncludeHeaders(true);
servletContextRequestLoggingFilter.setIncludePayload(true);
servletContextRequestLoggingFilter.setIncludeQueryString(true);
filter.setFilter(servletContextRequestLoggingFilter);
//filter.setUrlPatterns(urlPatterns);
//filter.setOrder(order);
return filter;
}
Filter可以用来记录http 请求日志, Spring 内置了一些可用的例如CommonsRequestLoggingFilter,ServletContextRequestLoggingFilter,也可继承AbstractRequestLoggingFilter类, 可以改用发送给kafka消费