Class InterceptorContext

java.lang.Object
io.leandev.appfuse.http.logging.InterceptorContext

public class InterceptorContext extends Object

攔截器上下文

提供在攔截器鏈中傳遞資料的機制,每個 HTTP 請求都有獨立的上下文實例。

使用場景

  • 在 beforeRequest 記錄開始時間,在 afterResponse 計算耗時
  • 在不同攔截器之間傳遞資料
  • 記錄請求的唯一識別碼
  • 累計重試次數

使用範例

// beforeRequest
context.put("startTime", System.currentTimeMillis());
context.incrementRetryCount();

// afterResponse
long startTime = (Long) context.get("startTime");
long duration = System.currentTimeMillis() - startTime;
int retries = context.getRetryCount();
  • Constructor Details

    • InterceptorContext

      public InterceptorContext()
      建立新的攔截器上下文
  • Method Details

    • getRequestId

      public String getRequestId()
      取得請求的唯一識別碼
      Returns:
      請求 ID(UUID 格式)
    • getRetryCount

      public int getRetryCount()
      取得重試次數
      Returns:
      重試次數
    • incrementRetryCount

      public void incrementRetryCount()
      增加重試次數
    • put

      public void put(String key, Object value)
      設定自訂屬性
      Parameters:
      key - 屬性鍵
      value - 屬性值
    • get

      public Object get(String key)
      取得自訂屬性
      Parameters:
      key - 屬性鍵
      Returns:
      屬性值,如果不存在則返回 null
    • get

      public <T> T get(String key, Class<T> type)
      取得自訂屬性(泛型版本)
      Type Parameters:
      T - 屬性類型
      Parameters:
      key - 屬性鍵
      type - 屬性類型
      Returns:
      屬性值,如果不存在則返回 null
    • contains

      public boolean contains(String key)
      檢查是否包含指定屬性
      Parameters:
      key - 屬性鍵
      Returns:
      如果包含則返回 true
    • remove

      public void remove(String key)
      移除指定屬性
      Parameters:
      key - 屬性鍵
    • clear

      public void clear()
      清空所有屬性