最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot攔截器怎么配置?手把手教你實現(xiàn)自定義攔截器

 更新時間:2026年07月29日 08:46:06   作者:JunSIr_#  
還在為SpringBoot攔截器配置頭疼?本文帶你一步步實現(xiàn)自定義攔截器,詳解WebMvcConfigurer的正確用法,避開@EnableWebMvc的坑,同時教你調(diào)整日志級別,輕松查看Spring MVC的debug信息,讓你的攔截器調(diào)試更高效

SpringBoot添加攔截器

攔截器也是我們經(jīng)常需要使用的,在SpringBoot中該如何配置呢?

攔截器不是一個普通屬性,而是一個類,所以就要用到java配置方式了。

在SpringBoot官方文檔中有這么一段說明:

If you want to keep Spring Boot MVC features and you want to add additional MVC configuration (interceptors, formatters, view controllers, and other features), you can add your own @Configuration class of type WebMvcConfigurer but without @EnableWebMvc. If you wish to provide custom instances of RequestMappingHandlerMapping, RequestMappingHandlerAdapter, or ExceptionHandlerExceptionResolver, you can declare a WebMvcRegistrationsAdapter instance to provide such components.

If you want to take complete control of Spring MVC, you can add your own @Configuration annotated with @EnableWebMvc.

翻譯:

如果你想要保持Spring Boot 的一些默認MVC特征,同時又想自定義一些MVC配置(包括:攔截器,格式化器, 視圖控制器、消息轉(zhuǎn)換器 等等),你應該讓一個類實現(xiàn)WebMvcConfigurer,并且添加@Configuration注解,但是千萬不要@EnableWebMvc注解。

如果你想要自定義HandlerMapping、HandlerAdapter、ExceptionResolver等組件,你可以創(chuàng)建一個WebMvcRegistrationsAdapter實例 來提供以上組件。

如果你想要完全自定義SpringMVC,不保留SpringBoot提供的一切特征,你可以自己定義類并且添加@Configuration注解和@EnableWebMvc注解

首先我們定義一個攔截器

@Component
//繼承HandlerInterceptor
public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle method is running!");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle method is running!");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion method is running!");
    }
}

定義配置類,注冊攔截器

@Configuration
//實現(xiàn)`WebMvcConfigurer`,并且添加`@Configuration`注解
public class MvcConfiguration implements WebMvcConfigurer {

    //注入定義的攔截器
    @Autowired
    private HandlerInterceptor myInterceptor;

    /**
     * 重寫接口中的addInterceptors方法,添加自定義攔截器
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
/*攔截路徑*/        registry.addInterceptor(myInterceptor).addPathPatterns("/**");
    }
}

接下來運行并查看日志

preHandle method is running!
postHandle method is running!
afterCompletion method is running!

你會發(fā)現(xiàn)日志中只有這些打印信息,springMVC的日志信息都沒有,因為springMVC記錄的log級別是debug,springboot默認是顯示info以上,我們需要進行配置。

SpringBoot通過logging.level.*=debug來配置日志級別,*填寫包名

# 設置org.springframework包的日志級別為debug
logging.level.org.springframework=debug

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何設置Spring Boot測試時的日志級別

    如何設置Spring Boot測試時的日志級別

    Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。下面我們來一起學習一下吧
    2019-06-06
  • SpringBoot整合Netty+Websocket實現(xiàn)消息推送的示例代碼

    SpringBoot整合Netty+Websocket實現(xiàn)消息推送的示例代碼

    WebSocket使得客戶端和服務器之間的數(shù)據(jù)交換變得更加簡單,允許服務端主動向客戶端推送數(shù)據(jù),本文主要介紹了SpringBoot整合Netty+Websocket實現(xiàn)消息推送的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 異常try?catch的常見四類方式(案例代碼)

    異常try?catch的常見四類方式(案例代碼)

    這篇文章主要介紹了異常try?catch的常見四類方式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • SpringBoot使用編程方式配置DataSource的方法

    SpringBoot使用編程方式配置DataSource的方法

    這篇文章主要介紹了SpringBoot使用編程方式配置DataSource的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • java 使用策略模式操作JDBC數(shù)據(jù)庫

    java 使用策略模式操作JDBC數(shù)據(jù)庫

    這篇文章主要介紹了java 使用策略模式操作JDBC數(shù)據(jù)庫的相關(guān)資料,這里提供實例實現(xiàn)對JDBC數(shù)據(jù)庫的操作增刪改查的功能,需要的朋友可以參考下
    2017-08-08
  • java使用ftp上傳文件示例分享

    java使用ftp上傳文件示例分享

    這篇文章主要介紹了java使用ftp上傳文件示例,需要的朋友可以參考下
    2014-02-02
  • JWT在SpringBoot3中的作用及說明

    JWT在SpringBoot3中的作用及說明

    JWT是一種開放標準(RFC 7519),用于在網(wǎng)絡應用環(huán)境間安全地將信息作為JSON對象傳輸,JWT在SpringBoot中用于身份驗證、授權(quán)和無狀態(tài)性,相比傳統(tǒng)的session/cookie方式,JWT具有無狀態(tài)、易于擴展、跨域支持好、性能高等優(yōu)點,但也存在令牌體積較大
    2025-12-12
  • java Matcher匹配頭尾截取替換字符串的案例

    java Matcher匹配頭尾截取替換字符串的案例

    這篇文章主要介紹了java Matcher匹配頭尾截取替換字符串的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Java如何使用JWT實現(xiàn)Token認證機制

    Java如何使用JWT實現(xiàn)Token認證機制

    JWT(JSON Web Token)是一種用于在網(wǎng)絡上安全地傳輸信息的簡潔的、URL 安全的表示方法,本文主要介紹了Java如何使用JWT實現(xiàn)Token認證機制,需要的可以參考下
    2024-10-10
  • JDK動態(tài)代理詳細解析

    JDK動態(tài)代理詳細解析

    這篇文章主要介紹了JDK動態(tài)代理詳細解析,在Java的動態(tài)代理機制中,有兩個重要的類和接口,一個是InvoInvocationHandler(接口)、Proxy(類),這一個類和接口是我們動態(tài)代理所必須用到的,需要的朋友可以參考下
    2023-11-11

最新評論

固始县| 宁津县| 丰镇市| 临漳县| 吉林市| 图们市| 科技| 时尚| 卢龙县| 蓬溪县| 苍溪县| 依安县| 香河县| 保康县| 玉林市| 汨罗市| 泽州县| 黄冈市| 宜良县| 游戏| 邹平县| 乌拉特前旗| 神木县| 宁远县| 招远市| 贵阳市| 星座| 沙雅县| 鲁甸县| 酒泉市| 秦皇岛市| 新野县| 革吉县| 正安县| 西畴县| 福泉市| 锦屏县| 中山市| 榆中县| 田林县| 仁化县|