麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

SpringBoot添加自定義攔截器的實現代碼

2024-07-14 08:42:22
字體:
來源:轉載
供稿:網友

在Controller層時,往往會需要校驗或驗證某些操作,而在每個Controller寫重復代碼,工作量比較大,這里在Springboot項目中 ,通過繼承WebMvcConfigurerAdapter,添加攔截器。

1、WebMvcConfigurerAdapter源碼

/* * Copyright 2002-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *   http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */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;/** * An implementation of {@link WebMvcConfigurer} with empty methods allowing * subclasses to override only the methods they're interested in. * * @author Rossen Stoyanchev * @since 3.1 */public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer {  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void configurePathMatch(PathMatchConfigurer configurer) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void configureAsyncSupport(AsyncSupportConfigurer configurer) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void addFormatters(FormatterRegistry registry) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void addInterceptors(InterceptorRegistry registry) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void addResourceHandlers(ResourceHandlerRegistry registry) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void addCorsMappings(CorsRegistry registry) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void addViewControllers(ViewControllerRegistry registry) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void configureViewResolvers(ViewResolverRegistry registry) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {  }  /**   * {@inheritDoc}   * <p>This implementation is empty.   */  @Override  public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {  }  /**   * {@inheritDoc}   * <p>This implementation returns {@code null}.   */  @Override  public Validator getValidator() {    return null;  }  /**   * {@inheritDoc}   * <p>This implementation returns {@code 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;@Configurationpublic 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添加自定義攔截器的實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 狠狠干导航 | 成人免费自拍视频 | 欧美 日韩 国产 在线 | 久久精品视频免费 | 国产精品亚洲欧美 | 久久毛片免费观看 | 黄色网页在线观看 | 午夜视频在线 | 天天操很很操 | 亚洲成人精品一区二区 | 久久99久久98精品免观看软件 | 羞羞答答tv | 最新se94se在线欧美 | 国产午夜亚洲精品 | 国产分类视频 | 新久草在线视频 | 国产精品自在线拍 | 91精品国产综合久久男男 | 欧美成人一区免费视频 | 日本中文字幕电影在线观看 | 中文在线观看www | 欧美激情精品久久久久久黑人 | 久久久久久久久久久av | 精品国产一区二区三区久久久狼牙 | 国产羞羞视频免费在线观看 | 成人啪啪18免费网站 | 国产成人免费精品 | 特片网久久 | 久久3| 快播av在线 | 99国产精品国产免费观看 | 亚洲精品午夜电影 | 2023av在线视频 | 久草导航| 一级黄色毛片免费 | 久草干| 久久久久久久久国产 | 中文字幕在线观看视频一区 | 午夜精品成人一区二区 | 亚洲精品a级 | 在线a亚洲视频播放在线观看 |