springboot3.X在配置过滤器时,和2.x有区别。
区别在于
编写过滤器 | 配置过滤器 | |
2.X | 继承 HandlerInterceptorAdapter | 实现 WebMvcConfigurer |
3.X | 实现 HandlerInterceptor | 继承 WebMvcConfigurationSupport |
1.首先编写过滤器
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
@Component
public class MyIntercepter implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("执行前=============================");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
System.out.println("执行中=============================");
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
System.out.println("执行完成后=============================");
}
}
2.将过滤器配置上
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
@Configuration
public class MyIntercepterConfig extends WebMvcConfigurationSupport {
@Autowired
private MyIntercepter interceptor;
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(interceptor)
.addPathPatterns("/**");
}
}