1. 程式人生 > >Spring Boot配置攔截器

Spring Boot配置攔截器

SpringBoot攔截器

最近專案中有一個需求,對來訪的請求,進行計算,記錄下業務處理時間。Spring Boot專案中使用攔截器,超級簡單,再次說明一下用法。相信大家一看便懂。

1.繼承 HandlerInterceptor 實現具體的處理邏輯

public interface HandlerInterceptor {
    boolean preHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3) throws Exception; //是否放行

    void postHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3, ModelAndView var4) throws
Exception; //處理結束 void afterCompletion(HttpServletRequest var1, HttpServletResponse var2, Object var3, Exception var4) throws Exception; //在處理結束後執行,最後執行的方法 }

以下是我的處理邏輯

/**
 * @Package: foxlife.base.interceptor
 * @Description: 處理時間攔截器,記錄下,介面處理時間
 * @author: liuxin
 * @date: 17/2/22 上午10:58
 */
@Component
public class ChanelInterceptor implements HandlerInterceptor { private static Logger logger = LoggerFactory.getLogger(ChanelInterceptor.class); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception { logger.info("============================攔截器啟動=============================="
); request.setAttribute("starttime",System.currentTimeMillis()); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView modelAndView) throws Exception { logger.info("===========================執行處理完畢============================="); long starttime = (long) request.getAttribute("starttime"); request.removeAttribute("starttime"); long endtime = System.currentTimeMillis(); logger.info("============請求地址:"+request.getRequestURI()+":處理時間:{}",(endtime-starttime)+"ms"); } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { logger.info("============================攔截器關閉=============================="); } }

2.配置攔截器到應用中

/**
 * @Package: foxlife.base.config
 * @Description: 配置攔截器
 * @author: liuxin
 * @date: 17/2/22 上午11:04
 */
@Configuration
public class MyInterceptorConfig extends WebMvcConfigurerAdapter{
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new ChanelInterceptor()).addPathPatterns("/**");
    }
}

3.演示

2017-02-23 15:40:43.619  INFO 64568 --- [io-31024-exec-3] f.base.interceptor.ChanelInterceptor     : ============================攔截器啟動==============================
2017-02-23 15:40:43.621  INFO 64568 --- [io-31024-exec-3] f.base.interceptor.ChanelInterceptor     : ===========================執行處理完畢=============================
2017-02-23 15:40:43.621  INFO 64568 --- [io-31024-exec-3] f.base.interceptor.ChanelInterceptor     : ============請求地址:/error:處理時間:2ms
2017-02-23 15:40:43.621  INFO 64568 --- [io-31024-exec-3] f.base.interceptor.ChanelInterceptor     : ============================攔截器關閉==============================

相關推薦

spring boot配置攔截/過濾器,並指定順序及規則

大家推薦個靠譜的公眾號程式設計師探索之路,大家一起加油,這個公眾號已經接入圖靈 ​ 攔截器: package com.zzh.interceptor; import org.springframework.stereotype.Component; import org.springframe

Spring Boot配置攔截

SpringBoot攔截器 最近專案中有一個需求,對來訪的請求,進行計算,記錄下業務處理時間。Spring Boot專案中使用攔截器,超級簡單,再次說明一下用法。相信大家一看便懂。 1.

Spring Boot】--攔截配置

實現HandlerInterceptor介面 /** * @Auther: chisj [email protected] * @Date: 2018-12-03 19:09 * @Description: */ @Slf4j public class AuthIn

spring-boot攔截的使用

背景 相信很多同行都有過做後臺許可權管理或者api token登陸態校驗之類的經驗,我最開始工作的時候就是做OA系統的,印象最深刻的就是角色許可權管理,當時經驗少,把許可權和業務功能做的耦合度非常的高,常常會在一個action的業務邏輯裡面加很多的if els

Spring boot攔截與定時任務的實現

場景:由於用Spring boot編寫了關於Ranger策略以及Hive脫敏相關的介面,並以http方式向外部提供。 為了防止請求被非法模仿,因而編寫了一個訪問Ip 鑑權類,也就是設定了訪問ip白名單,只有在白名單上的ip才可以訪問介面。 Spring boo

spring boot(19)-攔截

spring攔截器是aop的一種實現,主要攔截對動態資源的後臺請求,也就是攔截對控制層的請求,主要用於判斷使用者是否有許可權請求後臺。 動態資源和靜態資源 攔截器不會攔截靜態資源,如spring bo

27.Spring-Boot攔截中靜態資源的處理(踩過坑)以及Spring mvc configuring拓展介紹

一.springboot中對靜態資源的處理  預設情況下,springboot提供存放放置靜態資源的資料夾:  /static  /public   /resources  /META-INF/resources 對於maven專案即就是存在src/main/re

Spring Boot 使用攔截記錄使用者操作日誌

前言 上篇檔案主要是講了如何使用aop記錄使用者操作日誌,這篇檔案將介紹如何使用攔截器記錄操作日誌 匯入依賴 在處理請求引數時需要用到Json,其他依賴請檢視原始碼 <!-- Json解析 --> <dependency> <

Spring Boot整合攔截

src handle image 過濾器 and boot ima api hand 過濾器和監聽器都屬於Servlet 的api,還可以使用 Spring 提供的攔截器(HandlerInterceptor)進行改更精細的控制。 Spring Boot整合

Spring Boot 2.x配置攔截

攔截器功能強大,能夠深入方法前後,常應用於日誌記錄、許可權檢查和效能檢測等,幾乎是專案中不可或缺的一部分,本文就來實現Spring Boot自定義攔截器的配置。 理論指導 問:Spring Boot怎麼配置攔截器? 答:配置一個攔截器需要兩步完成。 自定義攔截器,實現Han

spring bootspring mvc常用配置--攔截配置(4)

2.攔截器配置 攔截器Interceptor實現對每一個請求處理前後進行相關的業務處理。類似於Servlet的Filter。 第一種方式:可以讓普通的bean實現HandlerInterceptor介面或者繼承HandlerInterceptorAdapter類來實現自定義

Spring Boot 優雅的配置攔截方式

其實spring boot攔截器的配置方式和springMVC差不多,只有一些小的改變需要注意下就ok了。下面主要介紹兩種常用的攔截器: 一、基於URL實現的攔截器: public class LoginInterceptor extends HandlerInterceptorAdapter{

spring mvc中攔截配置mvc:interceptors

ria letter lec 成了 -a font 進行 匹配 eight 其實在mvc:interceptors標簽中,有兩種類型的配置,一種直接配置一個bean(bean和ref歸為一類),另一種還要配置上攔截的路徑和排除的路徑。直接配置的bean那就代表對所有的請求進

Spring mvc interceptor配置攔截,沒有登入跳到登入頁

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schem

spring攔截配置與新名稱空間mvc:interceptors配置攔截對比與注意事項

原先,我們是這麼配置攔截器的 <bean id="openSessionInViewInterceptor"class="org.springframework.orm.hibernate3.support.OpenSessionInViewInterceptor

spring boot 使用spring AOP實現攔截

在spring boot中,簡單幾步,使用spring AOP實現一個攔截器: 1、引入依賴: <dependency> <groupId>org.springframework.boot</groupId> <art

Spring Boot 配置文件詳解:Properties和YAML

列表 config 其他 操作系統 des num mat 變量 onf 一.配置文件的生效順序,會對值進行覆蓋: 1. @TestPropertySource 註解 2. 命令行參數 3. Java系統屬性(System.getProperties

spring---aop(3)---Spring AOP的攔截

ati handler 攔截器 odi hand zab chain 記載 封裝 寫在前面   時間斷斷續續,這次寫一點關於spring aop攔截器鏈的記載。至於如何獲取spring的攔截器,前一篇博客已經寫的很清楚(spring---aop(2)---Spring AO

Struts2配置攔截自定義棧時拋異常:Unable to load configuration. - interceptor-ref - file:/D:/tomcat_install/webapps/crm/WEB-INF/classes/struts.xml

註意 其他 默認 才會 eba staf -i sta fault 代碼如下: <interceptors> <!-- 註冊自定義攔截器 --> <interceptor name="LoginInterceptor" class="co

spring boot 配置數據源

build -i autowired 1.0 emp aslist private ram apach 以postgreSQL為例,方便下次直接使用。 其中pom.xml引入如下依賴。 <?xml version="1.0" encoding="UTF-8"?>