精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

一個注解實(shí)現(xiàn)接口冪等,這樣才優(yōu)雅!

開發(fā) 前端
本節(jié)內(nèi)容介紹了防重注解@RepeatSubmit的實(shí)現(xiàn)原理,后續(xù)開發(fā)中只需要在非查詢接口中添加這個注解就能保證在一定時間內(nèi)防止重復(fù)提交。

場景

碼猿慢病云管理系統(tǒng)中其實(shí)高并發(fā)的場景不是很多,沒有必要每個接口都去考慮并發(fā)高的場景,比如添加住院患者的這個接口,具體的業(yè)務(wù)代碼就不貼了,業(yè)務(wù)偽代碼如下:

圖片圖片

上述代碼有問題嗎?誰能說有問題?一般情況下是沒什么問題,但是在高并發(fā)的場景下肯定是存在問題,為什么?

因?yàn)橛惺聞?wù)的隔離性,step1這個階段對住院號的校驗(yàn)肯定是存在問題的,在高并發(fā)的場景下無法保證這里的校驗(yàn)一定準(zhǔn)確。

其實(shí)這個接口的并發(fā)并不高,在碼猿慢病云管理系統(tǒng)中一般不會出現(xiàn)這種問題,那么什么時候會出現(xiàn)呢?

醫(yī)院中大部分是內(nèi)網(wǎng)+外網(wǎng),如果由于網(wǎng)絡(luò)的抖動,系統(tǒng)請求響應(yīng)的時間延遲,這樣會導(dǎo)致醫(yī)護(hù)操作時會出現(xiàn)重復(fù)點(diǎn)擊的情況,比如1秒中之內(nèi)由于第一次點(diǎn)添加患者這個按鈕沒反應(yīng),往往護(hù)士都會重復(fù)點(diǎn)擊,這種情況下是會出現(xiàn)問題。

這里我們就暫且不談對單個接口的冪等優(yōu)化了,要想一個方案全局解決這個問題,在碼猿慢病云管理系統(tǒng)中其實(shí)只要保證這種并發(fā)不高的接口在一定時間段內(nèi)保證冪等即可,比如5秒之內(nèi),這樣在5秒之內(nèi)護(hù)士重復(fù)點(diǎn)擊就沒事。

解決方案

在碼猿慢病云管理系統(tǒng)中新增了一個注解:@RepeatSubmit,代碼如下:

圖片圖片

只需要將該注解標(biāo)注在新增、修改、刪除接口上就能保證在默認(rèn)的5秒之內(nèi)接口冪等。

比如新增住院患者這個接口:

圖片圖片

那么原理是什么?其實(shí)很簡單,先來說下原理,再介紹具體的實(shí)現(xiàn):

  1. AOP攔截增強(qiáng)@RepeatSubmit注解
  2. 獲取請求的URL、IP地址、請求參數(shù)
  3. 將請求URL、IP地址、請求參數(shù)以一定形式轉(zhuǎn)為key
  4. 借助Redis的setNx命令將key存入Redis,且設(shè)置失效時間
  5. 如果存入成功則允許訪問,失敗則拋出異常
  6. 全局異常捕獲,輸出指定信息給客戶端

上述6個步驟中其實(shí)只有一點(diǎn)比較難實(shí)現(xiàn)的,其他的都是基本操作,就是獲取這個請求參數(shù),下面將詳細(xì)介紹一下如何獲取這個請求參數(shù)。

獲取請求參數(shù)

對于form-data的入?yún)⒅恍枰{(diào)用HttpServletRequest的API讀取,但是對于@RequestBody標(biāo)注的入?yún)⑹峭ㄟ^IO流讀取數(shù)據(jù),且IO流只能被讀取一次,如果在AOP中讀取了,那么在接口層面的入?yún)⒆x取肯定是有問題,報錯如下:

圖片圖片

解決方案也很簡單,只需要保證IO流能夠多次讀取即可,下面就來介紹一下方案。

這里我們可以利用裝飾者模式對 HttpServletRequest 的功能進(jìn)行增強(qiáng),具體做法也很簡單,我們重新定義一個 HttpServletRequest:

圖片圖片

圖片圖片

這段代碼并不難,很好懂。

首先在構(gòu)造 RepeatedlyRequestWrapper 的時候,就通過 IO 流將數(shù)據(jù)讀取出來并存入到一個 byte 數(shù)組中,然后重寫 getReader 和 getInputStream 方法,在這兩個讀取 IO 流的方法中,都從 byte 數(shù)組中返回 IO 流數(shù)據(jù)出來,這樣就實(shí)現(xiàn)了反復(fù)讀取了。

接下來我們定義一個過濾器,讓這個裝飾后的 Request 生效:

圖片圖片

判斷一下,如果請求數(shù)據(jù)類型是 JSON 的話,就把 HttpServletRequest “偷梁換柱”改為 HttpRequestWrapper,然后讓過濾器繼續(xù)往下走。

這樣就可以配置后就可以在程序中反復(fù)讀取參數(shù)了!

防重注解實(shí)現(xiàn)

解決了參數(shù)讀取的問題,下面就可以輕松實(shí)現(xiàn)這個防重注解了,首先定義注解com.code.ape.codeape.common.security.annotation.RepeatSubmit:

圖片圖片

接下來直接用AOP實(shí)現(xiàn),com.code.ape.codeape.common.security.component.CodeapeRepeatSubmitAspect代碼如下:

圖片圖片

圖片圖片

邏輯很簡單,上述已經(jīng)介紹過完整的流程,這里需要注意的是參數(shù)的讀取,代碼如下:

圖片圖片

其實(shí)就是將request判斷下是否是經(jīng)過過濾器封裝后的HttpRequestWrapper對象,如果是的話則是@RequestBody入?yún)ⅲ苯訌腎O流中讀取。

總結(jié)

本節(jié)內(nèi)容介紹了防重注解@RepeatSubmit的實(shí)現(xiàn)原理,后續(xù)開發(fā)中只需要在非查詢接口中添加這個注解就能保證在一定時間內(nèi)防止重復(fù)提交。

碼猿慢病云管理系統(tǒng)已經(jīng)在星球中陸續(xù)更新,目前更新內(nèi)容如下:

前言
     01 項(xiàng)目架構(gòu)+業(yè)務(wù)介紹
     02 三方組件介紹
     03 服務(wù)端項(xiàng)目部署
     04 前端項(xiàng)目部署
     05 多租戶架構(gòu)設(shè)計(jì)
     06 醫(yī)療系統(tǒng)中的權(quán)限如何設(shè)計(jì)?
     07 項(xiàng)目搭建
     08 關(guān)掉驗(yàn)證碼登錄
     09 開發(fā)平臺自動生成業(yè)務(wù)代碼
認(rèn)證鑒權(quán)
     01 認(rèn)證登錄生成token
     02 token檢驗(yàn)、鑒權(quán)
     03 token有效期設(shè)置
     04 刷新token
     05 檢查token
     06 服務(wù)中如何獲取當(dāng)前登錄用戶信息?
     07 接口對外暴露
     08 接口只允許內(nèi)部調(diào)用怎么處理?
     09 如何實(shí)現(xiàn)token中繼?
     10 當(dāng)前登錄用戶身份信息如何異步傳遞?
     11 科室權(quán)限如何定一個注解自動注入?
     12 一個注解防止接口重復(fù)提交
業(yè)務(wù)
     01 科室管理
     02 醫(yī)院管理
     03 角色管理

責(zé)任編輯:武曉燕 來源: 碼猿技術(shù)專欄
相關(guān)推薦

2025-02-23 08:00:00

冪等性Java開發(fā)

2024-04-07 08:48:13

WebSocket集群MQ

2024-11-08 15:56:36

2022-06-21 14:44:38

接口數(shù)據(jù)脫敏

2024-11-07 10:55:26

2022-06-10 13:03:44

接口重試while

2025-09-22 09:31:34

2024-03-13 15:18:00

接口冪等性高并發(fā)

2021-04-20 10:50:38

Spring Boot代碼Java

2022-04-25 11:26:16

開發(fā)SpringBoot

2022-05-16 10:45:22

Redis接口限流緩存

2023-08-21 08:01:03

2021-01-04 09:12:31

集合變量

2021-01-18 14:34:59

冪等性接口客戶端

2022-12-12 08:14:47

2025-07-25 01:00:00

Redis+接口冪等性

2023-03-07 08:19:16

接口冪等性SpringBoot

2024-06-24 01:00:00

2024-08-29 09:01:39

2025-07-14 00:00:00

接口重試MQTT冪等性
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

五十路在线观看| www.超碰在线观看| 欧洲精品一区二区三区| 国产欧美日韩在线观看| 国产日韩在线播放| 久久久久亚洲AV成人| 日本一道高清一区二区三区| 欧美亚洲禁片免费| 99亚洲国产精品| 天堂v视频永久在线播放| 视频一区二区中文字幕| 久久综合网hezyo| 亚洲欧美在线不卡| 性欧美video另类hd尤物| 亚洲电影激情视频网站| 亚洲国产精品一区二区第一页 | 暖暖视频在线免费观看| 精品一区二区三区在线播放视频| 久久久久久网站| 91在线无精精品白丝| 成人福利一区| 91精品国产91综合久久蜜臀| 国产又黄又大又粗视频| av大片在线| 国产精品色在线观看| 国产一区二区视频在线免费观看| 中文在线资源天堂| 亚洲每日在线| 欧美大奶子在线| 欧美午夜激情影院| 亚洲传媒在线| 亚洲国产精品小视频| 国产乱叫456| 国产精品传媒麻豆hd| 色综合中文字幕国产| 人妻无码久久一区二区三区免费| av香蕉成人| 国产精品国产三级国产aⅴ中文 | 亚洲精品成人无限看| 亚洲人成77777在线观看网| 五月天丁香社区| 日本一区二区三区视频在线看| 欧美日韩一区不卡| 亚洲狼人综合干| 欧美男体视频| 在线中文字幕一区二区| 日韩视频免费在线播放| 国产网址在线观看| 五月久久久综合一区二区小说| 亚洲免费伊人电影在线观看av| 日本久久久久久久久久| 日本一区二区三区播放| 日韩一区二区麻豆国产| 天美一区二区三区| 国产一区二区三区| 欧美精品九九99久久| 天天干天天操天天做| 国产黄色精品| 欧美日韩成人在线| 亚洲美女爱爱视频| 亚洲国产精选| 日韩小视频在线观看专区| 一级黄色片在线免费观看| 一级欧美视频| 日韩欧美精品三级| 欧美做受高潮中文字幕| 老牛精品亚洲成av人片| 国产视频在线一区二区| free性中国hd国语露脸| 精品毛片免费观看| 最新国产成人av网站网址麻豆| 国产人与禽zoz0性伦| 91精品综合久久久久久久久久久 | 精品性高朝久久久久久久| 精品熟女一区二区三区| 欧亚精品一区| 亚洲色图色老头| 国产成人精品视频免费| 亚洲色图网站| 97高清免费视频| 亚洲黄网在线观看| 美女在线一区二区| 99精品99久久久久久宅男| 人人妻人人玩人人澡人人爽| 91在线免费视频观看| 日韩欧美一区二区三区四区| 黄色片网站在线| 亚洲一区二区三区四区在线观看| aaa毛片在线观看| 在线观看欧美| 亚洲精品美女在线观看| 中文字幕精品亚洲| 国内精品久久久久久久97牛牛| 国模私拍视频一区| 欧美性受xxx黑人xyx性爽| 国产福利电影一区二区三区| 精品视频一区二区| 在线免费观看黄色网址| 午夜精品福利在线| www.日本一区| 欧美福利在线播放网址导航| 日韩在线中文字幕| 黄色一级片免费看| 麻豆成人av在线| 国产伦精品一区| 在线观看二区| 亚洲a一区二区| 99日在线视频| 亚洲午夜久久| 欧美激情亚洲自拍| 亚洲国产无线乱码在线观看 | 女尊高h男高潮呻吟| 99re66热这里只有精品8| 91国内在线视频| 国产乱淫a∨片免费观看| 91美女片黄在线观看| 黄色a级在线观看| 最新日韩三级| 亚洲国产成人av在线| 一区二区三区影视| 老司机午夜精品视频| 国产精品国产亚洲精品看不卡15| 在线观看av黄网站永久| 91黄色免费观看| 污污内射在线观看一区二区少妇| 亚洲视频电影在线| 国产精品视频区| 美国一级片在线免费观看视频| 亚洲国产精品视频| 少妇愉情理伦片bd| 欧美成人自拍| 国产精品入口夜色视频大尺度| 性xxxxbbbb| 亚洲国产毛片aaaaa无费看| 国产一区二区在线观看免费视频| 精品国产精品| 国产成人精品久久| 久久久久久久久亚洲精品| 午夜视频一区在线观看| 久久久精品人妻一区二区三区| 欧美xxxxx视频| 国产精品久久一区主播| 男男激情在线| 色哦色哦哦色天天综合| av黄色免费网站| 国产亚洲精品bv在线观看| 国产精品久久久对白| 男男gaygays亚洲| 日韩亚洲欧美在线观看| 欧洲第一无人区观看| 精品一区二区三区在线观看国产| 亚洲国产精品日韩| 亚洲国产aⅴ精品一区二区三区| 日韩性xxxx爱| 国产乱淫av免费| 一区二区三区不卡视频| 亚洲欧洲日韩综合| 国产精品激情电影| 国产福利不卡| 欧美裸体视频| 亚洲欧美国产精品久久久久久久 | 3d动漫精品啪啪一区二区竹菊| 懂色av蜜臀av粉嫩av永久| 久久66热偷产精品| 91xxx视频| 91成人短视频| 91精品国产91久久久久福利| 色就是色亚洲色图| 91成人免费在线视频| 一区二区三区在线播放视频| 精品一区二区三区免费毛片爱| 最新视频 - x88av| 成人性生交大片免费看中文视频| 欧美性视频网站| 97视频在线观看网站| 91精品欧美一区二区三区综合在| 久视频在线观看| 久久综合色鬼综合色| 在线免费观看av的网站| 伊人久久大香线蕉精品组织观看| 成人av资源| 台湾佬成人网| 久久久国产视频| 亚洲 欧美 激情 小说 另类| 欧美性一二三区| 激情五月婷婷小说| 久久毛片高清国产| 国产高清av片| 国产视频欧美| 热这里只有精品| 秋霞蜜臀av久久电影网免费| 国产精品免费久久久| 最新国产在线拍揄自揄视频| 日韩美女av在线| 亚洲在线观看av| 性做久久久久久免费观看 | 国产真实有声精品录音| 92看片淫黄大片欧美看国产片| ****av在线网毛片| 中文字幕国产亚洲2019| 免费a级片在线观看| 精品视频1区2区| 日本a在线观看| 国产精品初高中害羞小美女文| 久久久老熟女一区二区三区91| 日本中文字幕一区二区有限公司| 国产一区二区三区乱码| 日韩高清欧美| 久久国产精品 国产精品| 欧美欧美在线| 国产精品欧美一区二区三区奶水| 不卡av免费观看| 久久天堂电影网| 欧美女优在线| 亚洲成成品网站| 国产精品呻吟久久| 欧美性生活影院| 国产一区二区99| 亚洲国产成人av网| 色婷婷在线视频观看| 国产精品区一区二区三区 | 国产精品高清亚洲| 色无极影院亚洲| 白白色 亚洲乱淫| 精产国品一区二区三区| 激情六月婷婷综合| 黑人粗进入欧美aaaaa| 午夜综合激情| 热99这里只有精品| 一区二区亚洲| 欧美一区二区视频在线播放| 91精品一区二区三区综合在线爱 | 欧美日韩在线播放一区| 国产精品久久久久久久久久精爆| 亚洲国产精品久久人人爱蜜臀| 国产黄色的视频| 亚洲色图丝袜美腿| 亚洲女同二女同志奶水| 国产精品你懂的在线| 中文字幕成人动漫| 久久久亚洲国产美女国产盗摄| 色婷婷免费视频| k8久久久一区二区三区| av天堂一区二区| 成人激情午夜影院| 久久久午夜精品福利内容| 成人性色生活片| 蜜臀av粉嫩av懂色av| 成人高清免费观看| 欧亚乱熟女一区二区在线| 成人av免费观看| 中文字幕a在线观看| 91视频在线观看免费| 香蕉网在线播放| 国产午夜三级一区二区三| 日本人亚洲人jjzzjjz| 国产精品久久三| 成人免费精品动漫网站| 亚洲欧美电影一区二区| 久久激情免费视频| 精品成人乱色一区二区| 日本熟女毛茸茸| 欧美三级韩国三级日本一级| 国产一区二区视频免费观看| 日韩西西人体444www| 黄色小视频免费观看| 国产欧美一级| 97精品国产露脸对白| 4hu四虎永久在线影院成人| 国产欧美韩国高清| 三日本三级少妇三级99| 亚洲第一视频在线| 麻豆一区二区| 中文字幕欧美激情一区| 欧美xxxx做受欧美| 天天综合中文字幕| 制服丨自拍丨欧美丨动漫丨| 欧美日韩大片| 久久69精品久久久久久国产越南| 尤物视频在线看| 97人洗澡人人免费公开视频碰碰碰| 欧美gv在线观看| 国产精品视频资源| 日本在线成人| 欧美日韩一区二区视频在线观看| 日韩黄色大片| 蜜臀av色欲a片无码精品一区| 噜噜噜久久亚洲精品国产品小说| 蜜臀一区二区三区精品免费视频 | 国产有码在线一区二区视频| 麻豆国产一区| 欧美在线视频二区| 香蕉久久网站| 日韩精品视频一区二区在线观看| 激情综合五月婷婷| 亚洲色图14p| 亚洲婷婷综合色高清在线| 亚洲一区欧美在线| 欧美日韩一区成人| 午夜av免费观看| 精品久久久91| 欧美韩国亚洲| 国产精品对白刺激久久久| 狠狠综合久久av一区二区蜜桃| 国产精品av免费观看| 肉肉av福利一精品导航| 亚洲AV无码久久精品国产一区| 久久久久久毛片| 国产午夜视频在线播放| 欧美日韩国产小视频在线观看| 色窝窝无码一区二区三区| 日韩视频精品在线| 国产精品迅雷| 国产精品国产一区二区| 99精品在线观看| 国产精品少妇在线视频| 成人动漫在线一区| 男女性高潮免费网站| 欧美日韩综合一区| 亚洲欧美日韩动漫| 色在人av网站天堂精品| 亚洲色图图片| 亚洲高清在线播放| 麻豆91精品| 亚洲一区二区三区综合| 亚洲尤物在线视频观看| 国产伦精品一区二区三区视频痴汉| 亚洲欧美日韩网| cao在线视频| 高清一区二区三区视频| 亚洲午夜精品一区二区国产| 国产高清视频网站| 国产欧美精品日韩区二区麻豆天美| 国产无遮挡呻吟娇喘视频| 亚洲国产精品推荐| 菠萝蜜视频在线观看www入口| 亚洲在线第一页| 久久久久久免费视频| 一女二男3p波多野结衣| 中文字幕乱码日本亚洲一区二区| 丰满少妇xoxoxo视频| 国产视频综合在线| www.成人爱| 欧美激情导航| 丝袜美腿亚洲综合| 国产高清一区二区三区四区| 日本丰满少妇一区二区三区| 欧美女子与性| 国产精品成人免费电影| 成人羞羞网站| 91高清国产视频| 亚洲欧美aⅴ...| 亚洲精选一区二区三区| 欧美国产第一页| 精品丝袜久久| 国产一区二区三区精彩视频 | 欧美黑人疯狂性受xxxxx野外| 免费av在线一区二区| 美女网站久久| 亚洲女同二女同志奶水| 91麻豆精品91久久久久久清纯 | 色哟哟中文字幕| 91产国在线观看动作片喷水| 国产精品免费99久久久| 天天干天天操天天玩| 亚洲男人的天堂一区二区 | 亚洲一级片在线看| 日本精品另类| 一区二区三区日韩视频| 国产高清视频一区| 全部毛片永久免费看| 亚洲人成在线免费观看| 精品国产黄a∨片高清在线| 天天爱天天做天天操| 成人免费毛片高清视频| 国产精品免费精品一区| 中文国产亚洲喷潮| 日韩一区二区三区色| 国产a级一级片| 中文乱码免费一区二区| www.五月婷婷| 日本sm极度另类视频| 欧美黄色大片在线观看| 欧美熟妇精品一区二区| 一本久久精品一区二区| 九色porny在线| 久久国产手机看片| 毛片不卡一区二区| 日本三级欧美三级| 伊人伊成久久人综合网站| 日本高清精品| 成年人视频在线免费| 亚洲品质自拍视频| 亚洲欧洲精品视频| 91亚洲精品一区二区| 免费久久99精品国产自在现线| 任我爽在线视频| 日韩精品一区二区视频| 国产在线色视频| 国产视频精品在线|