用过Spring的肯定都知道拦截器,在SpringBoot中使用拦截器和以前Spring框架使用拦截器是一样的
唯一的不同就是以前是xml配置文件来配置拦截器,而SpringBoot是使用java代码来配置拦截器
关于拦截器的基本用法请参考:https://blog.csdn.net/u010837612/article/details/45364699,下面来讲SpringBoot如何配置拦截器
首先先写好两个拦截器 A 和 B:
package com.example.demo.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AInterceptor implements HandlerInterceptor{
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
System.out.println("放行...");
return true;
}
}
B:
package com.example.demo.interceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class BInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
System.out.println("不放行...");
return false;
}
}
创建一个类实现WebMvcConfigurer
接口,加上@Configuration
注解:
package com.example.demo.interceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfiturer implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//addPathPatterns 配置要拦截的地址
registry.addInterceptor(new AInterceptor()).addPathPatterns("/*/**");
registry.addInterceptor(new BInterceptor()).addPathPatterns("/*/**");
}
}
SpringBoot就是使用上面这段代码来取代了以前的xml配置文件。其他用法都是和以前是一样的,这里就不再阐述了。如有不明白的,请参考本文开头给出的链接。