栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot添加自定义拦截器的实现代码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot添加自定义拦截器的实现代码

在Controller层时,往往会需要校验或验证某些操作,而在每个Controller写重复代码,工作量比较大,这里在Springboot项目中 ,通过继承WebMvcConfigurerAdapter,添加拦截器。

1、WebMvcConfigurerAdapter源码


package org.springframework.web.servlet.config.annotation;
import java.util.List;
import org.springframework.format.FormatterRegistry;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.validation.MessageCodesResolver;
import org.springframework.validation.Validator;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
import org.springframework.web.servlet.HandlerExceptionResolver;

public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {
  
  @Override
  public void configurePathMatch(PathMatchConfigurer configurer) {
  }
  
  @Override
  public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
  }
  
  @Override
  public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
  }
  
  @Override
  public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
  }
  
  @Override
  public void addFormatters(FormatterRegistry registry) {
  }
  
  @Override
  public void addInterceptors(InterceptorRegistry registry) {
  }
  
  @Override
  public void addResourceHandlers(ResourceHandlerRegistry registry) {
  }
  
  @Override
  public void addCorsMappings(CorsRegistry registry) {
  }
  
  @Override
  public void addViewControllers(ViewControllerRegistry registry) {
  }
  
  @Override
  public void configureViewResolvers(ViewResolverRegistry registry) {
  }
  
  @Override
  public void addArgumentResolvers(List argumentResolvers) {
  }
  
  @Override
  public void addReturnValueHandlers(List returnValueHandlers) {
  }
  
  @Override
  public void configureMessageConverters(List> converters) {
  }
  
  @Override
  public void extendMessageConverters(List> converters) {
  }
  
  @Override
  public void configureHandlerExceptionResolvers(List exceptionResolvers) {
  }
  
  @Override
  public void extendHandlerExceptionResolvers(List exceptionResolvers) {
  }
  
  @Override
  public Validator getValidator() {
    return null;
  }
  
  @Override
  public MessageCodesResolver getMessageCodesResolver() {
    return null;
  }
}

可以看出,该类 还能配置其他很多操作,例如异常处理,跨域请求等配置。

2、自动义Web配置类

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(getMyInterceptor()).addPathPatterns("/**");
  }
  @Bean
  public MyInterceptor getMyInterceptor(){
    return new MyInterceptor();
  }
}

  如果需要添加多个拦截器,InterceptorRegistry registry.addInterceptor方法

public InterceptorRegistration addInterceptor(HandlerInterceptor interceptor) {
    InterceptorRegistration registration = new InterceptorRegistration(interceptor);
    this.registrations.add(registration);
    return registration;
  }

registrations是个数组结构,可以添加多个

3、自动义拦截器

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class MyInterceptor extends HandlerInterceptorAdapter {
  final Logger logger = LoggerFactory.getLogger(getClass());
  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    //拦截操作
    return true;
  }
}

总结

以上所述是小编给大家介绍的SpringBoot添加自定义拦截器的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对考高分网网站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/139990.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号