色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于接口冪等性解決方案

科技綠洲 ? 來源:Java技術指北 ? 作者:Java技術指北 ? 2023-09-30 16:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

接口冪等性是指無論調用接口的次數是一次還是多次,對于同一資源的操作都只會產生一次結果。換句話說,多次重復調用相同的接口請求應該具有與單次請求相同的效果,不會導致不一致或副作用的發生。

今天我們使用AI幫我們去創建一個自定義 注解 ,可以防止接口30秒內的重復請求,并采用Redis作為緩存。

提問

話不多說,直接提問:

圖片

等待數分鐘后。。。

1.創建自定義注解 其中包括接口保護時長,開啟防止重復提交保護等。

圖片

2.然后創建攔截器

圖片

這里我們貼出攔截器的核心代碼:

@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        if (handler instanceof HandlerMethod) {
            HandlerMethod handlerMethod = (HandlerMethod) handler;
            RepeatSubmit annotation = handlerMethod.getMethodAnnotation(RepeatSubmit.class);
            if (annotation != null && annotation.enable()) {
                String key = buildKey(request);
                if (StringUtils.hasText(redisTemplate.opsForValue().get(key))) {
                    response.getWriter().write("repeat request, please try again later!");
                    return false;
                } else {
                    redisTemplate.opsForValue().set(key, Arrays.toString(request.getInputStream().readAllBytes()), annotation.timeout(), TimeUnit.SECONDS);
                }
            }
        }
        return true;
    }
 //創建redis 緩存key
    private String buildKey(HttpServletRequest request) throws IOException, NoSuchAlgorithmException {
        String key = useRequestMD5 ? hashRequest(request) : request.getRequestURI();
        return "repeat-submit:" + key;
    }

 //對請求做hash運算
    private String hashRequest(HttpServletRequest request) throws IOException, NoSuchAlgorithmException {
        byte[] hashBytes = MessageDigest.getInstance("MD5").digest(request.getInputStream().readAllBytes());
        StringBuilder sb = new StringBuilder();
        for (byte b : hashBytes) {
            sb.append(String.format("%02x", b));
        }
        return sb.toString();
    }

3.注冊攔截器

圖片

最后給出的解釋與使用方法。

上面就是最關鍵的代碼了。

接入Redis

下面我們接入Redis。最精簡的配置版本

spring:
  data:
    redis:
      host: 127.0.0.1 
      port: 6379

接口使用注解

@RestController
public class RepeatTestController {

    @RepeatSubmit
    @GetMapping("/hello/mono1")
    public Mono< String > mono(){
        return Mono.just("Hello Mono -  Java North");
    }

    @RepeatSubmit
    @PostMapping ("/hello/mono1")
    public Mono< String > mono1(@RequestBody User user){
        return Mono.just("Hello Mono -  Java North-"+user.getName());
    }
}

本地起一個Redis,然后啟動本地的SpringBoot項目進行測試,

圖片

本地接口測試:30秒內重復請求會需要直接被攔截

圖片

Redis中緩存的KEY如下:

圖片

以上就是利用AI為我們生成的一個簡單的接口短時間內防止重復提交的注解代碼!

相關代碼在文章末尾,需要的話可以白嫖哈!

接口冪等性解決方案

下面問一下接口冪等性解決方案,

圖片

關于這個回答,大家覺得怎么樣?

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    9015

    瀏覽量

    153815
  • 緩存
    +關注

    關注

    1

    文章

    246

    瀏覽量

    27235
  • AI
    AI
    +關注

    關注

    88

    文章

    35273

    瀏覽量

    280532
  • 代碼
    +關注

    關注

    30

    文章

    4901

    瀏覽量

    70842
  • Redis
    +關注

    關注

    0

    文章

    387

    瀏覽量

    11466
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    立體智慧倉儲解決方案.#云計算

    解決方案智能設備
    學習電子知識
    發布于 :2022年10月06日 19:45:47

    離線計算中的和DataWorks中的相關事項

    考慮到,導致對應的單據有兩條確認記錄。點此查看原文:http://click.aliyun.com/m/42758/概念這個詞在軟
    發表于 02-27 13:24

    接口RFID解決方案提升醫療設備實用及使用壽命

    ,而這正是一個雙接口RFID解決方案所擅長的領域。作為連接系統內部工作的網關,雙接口RFID解決方案與監控設備相連無需糾纏不清的連接線,因此可提高監控儀的實用
    發表于 05-29 06:54

    I/O接口ESD靜電防護解決方案

    的危害,為便攜式消費電子、電腦、汽車電子產品的I/O接口提供理想的保護解決方案。接下來分享:I/O接口ESD靜電保護方案圖。I/O
    發表于 10-29 13:43

    HDMI接口靜電保護解決方案

    和發射器IC芯片采用的是亞微米CMOS工藝制造而成的,而亞微米CMOS十分地敏感,為此需要借助ESD靜電保護器件和ESD靜電保護解決方案為其保駕護航。機頂盒STB、電視LCD終端應用極其容易受到ESD
    發表于 12-31 15:57

    有源DASCPRI接口解決方案

    在此前合作的基礎上,康普與諾基亞再次攜手開發了一款旨在降低基站收發器系統(BTS)與有源分布式天線系統(DAS)之間的接口復雜解決方案
    發表于 08-20 16:19 ?853次閱讀

    在高并發下怎么保證接口

    前言 接口性問題,對于開發人員來說,是一個跟語言無關的公共問題。本文分享了一些解決這類問題非常實用的辦法,絕大部分內容我在項目中實踐過的,給有需要的小伙伴一個參考。 不知道你有沒有遇到過這些場景
    的頭像 發表于 05-14 10:23 ?2029次閱讀
    在高并發下怎么保證<b class='flag-5'>接口</b>的<b class='flag-5'>冪</b><b class='flag-5'>等</b><b class='flag-5'>性</b>?

    什么是?關于接口解決方案

    這里的樂觀鎖指的是用樂觀鎖的原理去實現,為數據字段增加一個version字段,當數據需要更新時,先去數據庫里獲取此時的version版本號
    發表于 10-09 10:19 ?2274次閱讀

    分析解決)的方法

    這個概念,是一個數學上的概念,即:f……(f(f(x))) = f(x)。用在計算機領域,指的是系統里的接口或方法對外的一種承諾,使用相同參數對同一資源重復調用某個接口或方法的結果
    的頭像 發表于 10-14 10:08 ?1325次閱讀

    Spring Boot實現接口的4種方案

    是一個數學與計算機學概念,在數學中某一元運算為時,其作用在任一元素兩次后會和其作用一次的結果相同。
    的頭像 發表于 11-08 10:21 ?1221次閱讀

    什么是的實現原理

    在編程中一個操作的特點是其任意多次執行所產生的影響均與一次執行的影響相同。函數,或
    發表于 01-05 10:40 ?6994次閱讀

    一個注解,優雅的實現接口

    除了查詢和刪除之外,還有更新操作,同樣的更新操作在大多數場景下也是天然的,其例外是也會存在ABA的問題,更重要的是,比如執行update table set a = a + 1 where v = 1這樣的更新就非等了。
    的頭像 發表于 08-26 14:36 ?1180次閱讀
    一個注解,優雅的實現<b class='flag-5'>接口</b><b class='flag-5'>冪</b><b class='flag-5'>等</b><b class='flag-5'>性</b>!

    實用RTD接口解決方案

    電子發燒友網站提供《實用RTD接口解決方案.pdf》資料免費下載
    發表于 11-16 16:05 ?1次下載
    實用RTD<b class='flag-5'>接口</b><b class='flag-5'>解決方案</b>

    為什么要實現校驗 如何實現接口校驗

    前端重復提交表單:在填寫一些表格時候,用戶填寫完成提交,很多時候會因網絡波動沒有及時對用戶做出提交成功響應,致使用戶認為沒有成功提交,然后一直點提交按鈕,這時就會發生重復提交表單請求。
    的頭像 發表于 02-20 14:14 ?1671次閱讀

    探索LabVIEW編程接口原理與實踐

    原來是數學上的概念,在編程領域可以理解為:多次請求某一個資源或執行某一個操作時應該具有唯一同樣結果,也就是說,其任意多次執行對資源
    的頭像 發表于 02-29 10:24 ?953次閱讀
    探索LabVIEW編程<b class='flag-5'>接口</b><b class='flag-5'>冪</b><b class='flag-5'>等</b><b class='flag-5'>性</b>原理與實踐
    主站蜘蛛池模板: 国际老妇高清在线观看 | 怪物高h粗暴无尽 | 色欲AV色欲AV久久麻豆 | NANANA在线观看高清影院 | 中文在线无码高潮潮喷在线 | 交换娇妻呻吟声不停中文字幕 | WWW国产亚洲精品久久久日本 | 国产高清在线a视频大全 | 俄罗斯6一12呦女精品 | 97国产露脸精品国产麻豆 | 国内精品偷拍在线观看 | 高H黄暴NP辣H一女多男 | 久久99国产视频 | 把腿张开再深点好爽宝贝 | 亚洲免费视频网站 | 久久a级片 | 九九热视频在线观看 | avtt天堂网2014| 国产亚洲精品成人a在线 | 恋夜秀场1234手机视频在线观看 | 浴室里强摁做开腿呻吟的漫画男男 | 亚洲色大成网站WWW永久麻豆 | 国产91青青成人a在线 | 久久观看视频 | 天美麻豆成人AV精品视频 | 东北女人奶大毛多水多 | 久久这里只有精品2 | 免费精品国产日韩热久久 | 在线天天看片视频免费观看 | 99er4久久视频精品首页 | 快播电影官方网站 | 美女丝袜夹b | 河南老太XXXXXHD| 久久亚洲精品永久网站 | 偷拍 自怕 亚洲 在线 | 99热这里只有 精品 99热这里只就有精品22 | 日韩欧美一区二区三区在线视频 | www.青青草.com| 国产在线高清亚洲精品一区 | 国产欧美日韩网站 | 国产精品一区二区人妻无码 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品