spring-boot自定义拦截器
spring-boot中的WebMvcConfigurerAdapter类提供了很多自定义操作的方法,先贴出来大家看看
- 1 package org.springframework.web.servlet.config.annotation;
- 2
- 3 import java.util.List;
- 4 import org.springframework.format.FormatterRegistry;
- 5 import org.springframework.http.converter.HttpMessageConverter;
- 6 import org.springframework.validation.MessageCodesResolver;
- 7 import org.springframework.validation.Validator;
- 8 import org.springframework.web.method.support.HandlerMethodArgumentResolver;
- 9 import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
- 10 import org.springframework.web.servlet.HandlerExceptionResolver;
- 11
- 12 public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
- 13 public WebMvcConfigurerAdapter() {
- 14 }
- 15
- 16 public void configurePathMatch(PathMatchConfigurer configurer) {
- 17 }
- 18
- 19 public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
- 20 }
- 21
- 22 public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
- 23 }
- 24
- 25 public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
- 26 }
- 27
- 28 public void addFormatters(FormatterRegistry registry) {
- 29 }
- 30
- 31 public void addInterceptors(InterceptorRegistry registry) {
- 32 }
- 33
- 34 public void addResourceHandlers(ResourceHandlerRegistry registry) {
- 35 }
- 36
- 37 public void addCorsMappings(CorsRegistry registry) {
- 38 }
- 39
- 40 public void addViewControllers(ViewControllerRegistry registry) {
- 41 }
- 42
- 43 public void configureViewResolvers(ViewResolverRegistry registry) {
- 44 }
- 45
- 46 public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
- 47 }
- 48
- 49 public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
- 50 }
- 51
- 52 public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
- 53 }
- 54
- 55 public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
- 56 }
- 57
- 58 public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
- 59 }
- 60
- 61 public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
- 62 }
- 63
- 64 public Validator getValidator() {
- 65 return null;
- 66 }
- 67
- 68 public MessageCodesResolver getMessageCodesResolver() {
- 69 return null;
- 70 }
- 71 }
如上代码的实现都是空的,也就是说我们想要完成自定义一些操作,只需要重写这个类中对应的方法,就可以实现
比如昨晚写了篇自定义springboot的消息转换器 ,其中的一种实现就是通过重写这个类的方法
下边贴一下重写addInterceptors从而实现自定义拦截器的demo
- 1 package com.itcast.springboot;
- 2
- 3 import org.springframework.context.annotation.Configuration;
- 4 import org.springframework.web.servlet.HandlerInterceptor;
- 5 import org.springframework.web.servlet.ModelAndView;
- 6 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
- 7 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
- 8
- 9 import javax.servlet.http.HttpServletRequest;
- 10 import javax.servlet.http.HttpServletResponse;
- 11
- 12 /**
- 13 * @Author : Hellxz
- 14 * @Description:自定义拦截器
- 15 * @Date : 2018/4/8 12:36
- 16 */
- 17 @Configuration
- 18 public class MyInterceptor extends WebMvcConfigurerAdapter {
- 19 /**
- 20 * @Author: Hellxz
- 21 * @Description: 添加自定义拦截器
- 22 * @Date: 2018/4/8 12:39
- 23 */
- 24 @Override
- 25 public void addInterceptors(InterceptorRegistry registry) {
- 26 /**
- 27 * 自定义handlerInterceptor,匿名内部类,也可以单独提出来一个类
- 28 */
- 29 HandlerInterceptor handlerInterceptor = new HandlerInterceptor() {
- 30 @Override
- 31 public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
- 32 System.out.println("—————进入拦截器");
- 33 return true;
- 34 }
- 35
- 36 @Override
- 37 public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
- 38 }
- 39
- 40 @Override
- 41 public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
- 42 }
- 43 };
- 44 //将这个handler添加到签名认证拦截器中
- 45 registry.addInterceptor(handlerInterceptor);
- 46 // 添加拦截uri
- 47 // registry.addInterceptor(handlerInterceptor).addPathPatterns("/user/**");
- 48 super.addInterceptors(registry);
- 49 }
- 50
- 51 }
版权声明:本文为hellxz原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。