欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何替換@PathVariable中的變量

 更新時間:2021年10月30日 09:34:23   作者:zzzgd816  
這篇文章主要介紹了如何替換@PathVariable中的變量,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

替換@PathVariable的變量

因為要對接口進(jìn)行統(tǒng)計, 而項目中用到了@PathVariable的注解, 也就是uri中攜帶請求參數(shù)的方式. 導(dǎo)致一個接口統(tǒng)計出來很多個請求, 比如 /api/get/1, /api/get/2 …

在網(wǎng)上找到可以通過

Map<String, String> pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);

拿到這個PathVariable參數(shù). 于是初步代碼如下, 將/api/get/{id} 這個變量替換成常量{x}.

import com.google.common.base.Joiner;
import javax.servlet.*;
  /**
   * 獲取 去除掉 PathVariable 后的uri
   * @param request
   * @return
   */
  private String getPureUri(HttpServletRequest request) {
    String url = request.getRequestURI();
    Map<String, String> pathVariables = (Map) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
     if (pathVariables != null && !pathVariables.isEmpty()){
      String[] split = url.split("/");
      for (String pathVal : pathVariables.values()) {
        for (int i = split.length - 1; i >= 0; i--) {
          if (split[i].equals(pathVal)){
            //替換成{x},也可以直接替換成""去掉
            split[i] = "{x}";
            break;
          }
        }
      }
      url = Joiner.on("/").join(split);
    }
    return url;
  }

@pathvariable注解的使用

帶占位符的 URL 是 Spring3.0 新增的功能,該功能在SpringMVC 向 REST 目標(biāo)挺進(jìn)發(fā)展過程中具有里程碑的意義。

通過 @PathVariable 可以將 URL 中占位符參數(shù)綁定到控制器處理方法的入?yún)⒅?URL 中的 {xxx} 占位符可以通過

@PathVariable("xxx") 綁定到操作方法的入?yún)⒅小?/p>

    //@GetMapping是一個組合注解,是@RequestMapping(method = RequestMethod.GET)的縮寫
    @GetMapping("/getUserById/{id}")
    public User getUser(@PathVariable("id") Long userId){
        return userService.selectUserById(userId);
    }

不需要使用問號傳參,不需要寫key=valuel,直接寫value即可.

若方法參數(shù)名稱和需要綁定的uri template中變量名稱一致時,可以簡寫:

    //@GetMapping是一個組合注解,是@RequestMapping(method = RequestMethod.GET)的縮寫。
    @GetMapping("/getUserByName/{userName}")
    public User getUserByName(@PathVariable String userName){
        return userService.selectUserByUserName(userName);
    }

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

相關(guān)文章

  • SpringBoot整合PageHelper實現(xiàn)分頁查詢功能詳解

    SpringBoot整合PageHelper實現(xiàn)分頁查詢功能詳解

    PageHelper是mybatis框架的一個插件,用于支持在mybatis執(zhí)行分頁操作。本文將通過SpringBoot整合PageHelper實現(xiàn)分頁查詢功能,需要的可以參考一下
    2022-03-03
  • Spring?Boot?整合?Fisco?Bcos的案例分析(區(qū)塊鏈)

    Spring?Boot?整合?Fisco?Bcos的案例分析(區(qū)塊鏈)

    本篇文章介紹的?Spring?Boot?整合?Fisco?Bcos的案例,是在阿里云服務(wù)器上部署驗證的。大家可根據(jù)自己的電腦環(huán)境,對比該案例進(jìn)行開發(fā)即可,具體案例代碼跟隨小編一起看看吧
    2022-01-01
  • Java實現(xiàn)AES加密和解密方式完整示例

    Java實現(xiàn)AES加密和解密方式完整示例

    這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)AES加密和解密方式的相關(guān)資料,AES加密為最常見的對稱加密算法,是一種區(qū)塊加密標(biāo)準(zhǔn),這個標(biāo)準(zhǔn)用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用,需要的朋友可以參考下
    2023-10-10
  • java連接mysql數(shù)據(jù)庫學(xué)習(xí)示例

    java連接mysql數(shù)據(jù)庫學(xué)習(xí)示例

    這篇文章主要介紹了java連接mysql數(shù)據(jù)庫學(xué)習(xí)示例,需要的朋友可以參考下
    2014-03-03
  • SpringBoot圖文并茂詳解如何引入mybatis與連接Mysql數(shù)據(jù)庫

    SpringBoot圖文并茂詳解如何引入mybatis與連接Mysql數(shù)據(jù)庫

    這篇文章主要介紹了SpringBoot如何引入mybatis與連接Mysql數(shù)據(jù)庫,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Spring中事務(wù)傳播行為的介紹

    Spring中事務(wù)傳播行為的介紹

    今天小編就為大家分享一篇關(guān)于Spring中事務(wù)傳播行為的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Java monitor機(jī)制使用方法解析

    Java monitor機(jī)制使用方法解析

    這篇文章主要介紹了Java monitor機(jī)制使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • spring boot+ redis 接口訪問頻率限制的實現(xiàn)

    spring boot+ redis 接口訪問頻率限制的實現(xiàn)

    這篇文章主要介紹了spring boot+ redis 接口訪問頻率限制的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java中class和Class的區(qū)別示例詳解

    Java中class和Class的區(qū)別示例詳解

    class 是java的關(guān)鍵字,在聲明java類時使用,Class是java JDK提供的一個類,完整路徑為java.lang.Class,下面這篇文章主要給大家介紹了關(guān)于Java中class和Class區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Springboot中的自定義攔截器及原理詳解

    Springboot中的自定義攔截器及原理詳解

    這篇文章主要介紹了Springboot中的自定義攔截器及原理詳解,攔截器主要是用于在用戶請求控制中,對于請求識別,鑒權(quán),以及區(qū)分資源是否可以被目標(biāo)方法調(diào)用的安全機(jī)制,需要的朋友可以參考下
    2023-12-12

最新評論