日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

淺談spring的重試機制無效@Retryable@EnableRetry

瀏覽:280日期:2023-08-13 14:11:26

spring-retry模塊支持方法和類、接口、枚舉級別的重試

方式很簡單,引入pom包

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>lastest</version></parent><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><!-- https://mvnrepository.com/artifact/org.springframework.retry/spring-retry --><dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> <version>1.1.2.RELEASE</version></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.6</version></dependency>

然后在@Configuration注解的類中添加@EnableRetry

最后在想要重試的方法上添加@Retryable(Exception.class)

由于retry用到了aspect增強,所有會有aspect的坑,就是方法內部調用,會使aspect增強失效,那么retry當然也會失效。

例如

public class demo { public void A() { B(); } @Retryable(Exception.class) public void B() { throw new RuntimeException('retry...'); }}

這種情況B()不會重試。

補充知識:Springboot整合Spring Retry實現重試機制

在項目開發過程中,經常會有這樣的情況:第一次執行一個操作不成功,考慮到可能是網絡原因造成,就多執行幾次操作,直到得到想要的結果為止,這就是重試機制。

Springboot可以通過整合Spring Retry框架實現重試。

下面講一下在之前新建的ibatis項目基礎上整合Spring Retry框架的步驟:

1、首先要在pom.xml配置中加入spring-retry的依賴:

<dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId></dependency>

2、在啟動類中加入重試注解@EnableRetry。

import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.retry.annotation.EnableRetry;@EnableRetry //重試注解@MapperScan('com.batis.mapper')@SpringBootApplicationpublic class BatisApplication { public static void main(String[] args) { SpringApplication.run(BatisApplication.class, args); }}

3、新建重試接口RetryService和實現類RetryServiceImpl

重試接口:

public interface RetryService { void retryTransferAccounts(int fromAccountId, int toAccountId, float money) throws Exception;}

接口實現類:

import com.batis.mapper.AccountMapper;import com.batis.model.Account;import com.batis.service.RetryService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.retry.annotation.Backoff;import org.springframework.retry.annotation.Recover;import org.springframework.retry.annotation.Retryable;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;@Servicepublic class RetryServiceImpl implements RetryService { @Autowired private AccountMapper accountMapper; @Transactional @Retryable(value = Exception.class, maxAttempts = 3, backoff = @Backoff(delay = 3000, multiplier = 1, maxDelay = 10000)) @Override public void retryTransferAccounts(int fromAccountId, int toAccountId, float money) throws Exception { Account fromAccount = accountMapper.findOne(fromAccountId); fromAccount.setBalance(fromAccount.getBalance() - money); accountMapper.update(fromAccount); int a = 2 / 0; Account toAccount = accountMapper.findOne(toAccountId); toAccount.setBalance(toAccount.getBalance() + money); accountMapper.update(toAccount); throw new Exception(); } @Recover public void recover(Exception e) { System.out.println('回調方法執行?。?!'); }}

@Retryable:標記當前方法會使用重試機制

value:重試的觸發機制,當遇到Exception異常的時候,會觸發重試

maxAttempts:重試次數(包括第一次調用)

delay:重試的間隔時間

multiplier:delay時間的間隔倍數

maxDelay:重試次數之間的最大時間間隔,默認為0,如果小于delay的設置,則默認為30000L

@Recover:標記方法為回調方法,傳參與@Retryable的value值需一致

4、新建重試控制器類RetryController

import com.batis.service.RetryService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping('/retry')public class RetryController { @Autowired private RetryService retryService; @RequestMapping(value = '/transfer', method = RequestMethod.GET) public String transferAccounts() { try { retryService.retryTransferAccounts(1, 2, 200); return 'ok'; } catch (Exception e) { return 'no'; } }}

5、啟動ibatis項目進行測試,在瀏覽器地址欄輸入:http://localhost:8080/retry/transfer

淺談spring的重試機制無效@Retryable@EnableRetry

可以看到,轉賬操作一共執行了3次,最后執行了回調方法。

至此Springboot整合Spring Retry的步驟已經完成,測試也非常成功!

有可以改進的地方希望諸位同學不要吝惜筆墨,加以指正,萬分感謝!

以上這篇淺談spring的重試機制無效@Retryable@EnableRetry就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人在线超碰| 欧美日韩中文| 国产精品一区亚洲| 日韩精品中文字幕吗一区二区| 日本美女一区| 成人在线视频区| 国产精品久久久久久久久久白浆 | 久久久国产精品网站| 久久精品凹凸全集| 欧美日韩精品一区二区三区视频 | 99成人在线| 日韩久久视频| 欧美日韩在线网站| 久久久久久久久久久9不雅视频| 日韩欧美视频专区| 久久精品av| 在线免费观看亚洲| 国产欧美一区二区精品久久久 | 国产综合视频| 日韩毛片视频| 欧美美女一区| 91成人精品在线| 精品免费在线| 亚洲1234区| 国产视频亚洲| 国产精品美女在线观看直播| 精品淫伦v久久水蜜桃| 欧洲亚洲一区二区三区| 久久99伊人| 欧美黄色一区二区| 久久亚洲成人| 国产日韩三级| 免费精品国产的网站免费观看| 日韩精品一级二级 | 国产精品99在线观看| 欧美女激情福利| 国产亚洲第一伦理第一区| 久久久久欧美精品| 97se亚洲| 99国产精品99久久久久久粉嫩| 久久狠狠亚洲综合| 欧美日韩免费观看一区=区三区| 97久久超碰| 欧美日韩国产高清| 国产伊人久久| 日韩一区二区三区在线看| 成人羞羞视频在线看网址| 亚洲bt欧美bt精品777| 久久免费影院| 影音先锋久久精品| 91精品亚洲| 欧美激情另类| 国产精品久久久久久久久久久久久久久 | 国产精品免费99久久久| 99在线观看免费视频精品观看| 丰满少妇一区| 国产精品啊v在线| 亚洲精选成人| 模特精品在线| 免费日韩视频| 成人看片网站| 福利一区二区免费视频| 亚洲四虎影院| 中文字幕在线视频久| 国产精品黄色| 欧美激情日韩| 久久av网址| 久久精品毛片| 欧美交a欧美精品喷水| 久久国产视频网| 国产午夜久久av| 国产精品麻豆成人av电影艾秋| 色综合视频一区二区三区日韩 | 久久国内精品| 国产免费av一区二区三区| 亚洲色图国产| 日韩欧美高清一区二区三区| 亚洲一区二区三区四区电影| 爽好多水快深点欧美视频| 日本大胆欧美人术艺术动态| 三级在线观看一区二区| 中文视频一区| 国产欧美一级| 福利在线免费视频| 欧美成人基地| 国产精品美女久久久浪潮软件| 亚洲黄色在线| 日韩av资源网| 精品一区二区三区中文字幕| 青青青免费在线视频| 人人香蕉久久| 日韩不卡在线观看日韩不卡视频| 久久尤物视频| 久久亚洲国产精品一区二区| 国产精品扒开腿做爽爽爽软件| 99久久婷婷这里只有精品| 亚洲精品伊人| 蜜桃精品在线| 国产精品国产三级在线观看| 91精品啪在线观看国产18 | 欧美亚洲在线日韩| 国产精品巨作av| 日韩中文影院| 91亚洲无吗| 超碰超碰人人人人精品| 99国产精品视频免费观看一公开| 亚洲男人在线| 精品不卡一区| 蜜桃av一区二区三区电影| 日韩精品电影一区亚洲| 久久影院一区二区三区| 亚洲激情精品| 日韩亚洲精品在线观看| 免费在线欧美黄色| 久久久久久久久久久妇女| 亚洲视频国产| 欧美香蕉视频| 欧美日韩午夜| 亚洲激情社区| 国产精品最新| 免费视频一区二区| 精品亚洲美女网站| 婷婷综合成人| 在线 亚洲欧美在线综合一区| 欧美极品中文字幕| 日韩精品免费一区二区夜夜嗨| 日韩三区在线| 国产一区二区三区不卡视频网站 | 日韩精品免费视频人成| 精品国产一区二区三区性色av| 国内精品福利| 97在线精品| 麻豆一区在线| 欧美一区影院| 亚洲日本欧美| 视频在线观看91| 午夜精品成人av| 成人亚洲一区| 日本一区二区高清不卡| 亚洲精品欧洲| 日韩中文字幕麻豆| 日韩中文字幕亚洲一区二区va在线| 日韩成人高清| 丰满少妇一区| 在线天堂中文资源最新版| 麻豆精品视频在线观看视频| 国产高清亚洲| 精品一区不卡| 日韩在线免费| 蜜臀av免费一区二区三区| 蜜桃精品在线| 97国产成人高清在线观看| 国产成人免费| 日本一区二区高清不卡| 日韩电影免费网站| 99精品国产一区二区三区| 色88888久久久久久影院| 视频一区视频二区中文字幕| 亚洲小说欧美另类婷婷| 久久99影视| 国产午夜一区| 麻豆免费精品视频| 久久精品在线| 久久中文字幕av| 婷婷五月色综合香五月| 亚洲一区网站| 美女视频黄 久久| 久久久免费人体| 国产乱码精品一区二区三区四区 | 国产日韩欧美一区二区三区在线观看 | 给我免费播放日韩视频| 一本大道色婷婷在线| 亚洲精品成人| 日韩精品91亚洲二区在线观看| 亚久久调教视频| 亚洲婷婷丁香| 激情不卡一区二区三区视频在线| 日本免费一区二区三区四区| 国产一级久久| 国产日产高清欧美一区二区三区| 麻豆久久一区二区| 婷婷激情图片久久| 麻豆91小视频| 爽爽淫人综合网网站| 麻豆精品一区二区综合av| a天堂资源在线| 亚洲一级淫片| 久久天堂成人| 国产精品美女午夜爽爽| 国产精选在线| 欧美日韩xxxx| 日韩国产一区| 国产欧美一区二区色老头| 欧美日韩精品一区二区三区视频| 婷婷激情一区| 国产麻豆一区二区三区精品视频| 久久免费国产| 日韩激情中文字幕| 五月天久久久| 嫩呦国产一区二区三区av|