首先我们建一个叫WebMvcConfig
的Java类,然后给这个类添加一个注解叫@Configuration
,以此声明该类为spring容器的一个配置类,然后我们就可以在这个类中配置拦截器。
我们先自己定义一个拦截器:
public class TestInterceptor implements HandlerInterceptor {
@Override
/**
* 执行之前 返回true 请求继续执行 返回false请求结束,不再执行 我们需要自行返回数据到前端
*/
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("这是我配置的拦截器");
//在这里我们可以对拦截到的请求进行处理
return true;
}
}
在spring的配置类WebMvcConfig
中配置拦截器
/**
* todo: EnableWebMvc是springmvc的一些基础默认配置(包括拦截器链的默认配置),
* todo: 与在web.xml中配置不同的是我们可以在spring的配置类中修改它的默认配置,
* todo: 这样我们就可以在这里配置拦截器,如果是在web.xml中配置,他的优先级会高于这里的配置
* todo: 我们在这里配置的拦截器就不会生效
* todo:
*
*/
@EnableWebMvc
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
/**
* Bean注解 实例化我们定义的拦截器交给spring管理
* @return
*/
@Bean
public TestInterceptor testInterceptor() {
return new TestInterceptor();
}
/**
* 添加我们定义的拦截器到拦截器链
* @param registry
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(testInterceptor());
}
}
配置到这里,拦截器就配置完成了。