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

spring retry 配置及使用教程

 更新時間:2024年01月19日 10:32:54   作者:雄雞三聲天下白  
這篇文章主要介紹了spring retry 配置及使用教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

spring retry 配置及使用

接口或功能因外界異常導致失敗后進行重推機制

依賴

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.1.RELEASE</version>
    </parent>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.retry</groupId>
        <artifactId>spring-retry</artifactId>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId >
        <artifactId>aspectjweaver</artifactId >
        <version>1.6.11</version >
    </dependency>

開始使用

@EnableRetry 啟用注解

代碼示例

@SpringBootApplication
@EnableRetry
public class SpringTestApp {
    public static void main(String[] args) {
        SpringApplication.run(SpringTestApp.class,args);
    }
}

業(yè)務注解

@Retryable 業(yè)務方法注解
@Recover 回調(diào)方法注解

代碼示例

@Slf4j
@Service
public class IndexService {
    @Retryable(value = NullPointerException.class)
    public String request(){
        log.info("開始測試 {}",System.currentTimeMillis());
        String str = null;
        str.indexOf("a");
        return "null";
    }
    @Recover()
    public String callback(NullPointerException e){
        log.info("重試3次失敗");
        throw e;
    }
}

注意

兩個方法的返回值要一樣,否則是不起作用的

NullPointerException 必須要將異常類型當作參數(shù)傳入

如果不這樣的話無法進行回調(diào),當然不配置 @Recever 也可以,那就不會有回調(diào)處理了

寫一個action 調(diào)用一下方法

@RestController
public class IndexAction {
    @Resource
    private IndexService indexService;
    @GetMapping("test1")
    public String test1(){
        try {
            indexService.request();
            return "ok";
        }catch (Exception e){
            return e.getClass().getName() + e.getMessage();
        }
    }
}

輸出結(jié)果

 : 開始測試 1704852025819
 : 開始測試 1704852026824
 : 開始測試 1704852027833
 : 重試3次失敗

以上最簡單的使用方式就結(jié)束了,

如果不加任何配置默認會調(diào)用三次,每次間隔1s

注解源碼

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Retryable {
    String interceptor() default "";
    Class<? extends Throwable>[] value() default {};指定異常類型
    Class<? extends Throwable>[] include() default {};多個異常類型
    Class<? extends Throwable>[] exclude() default {};多個異常類型
    String label() default "";
    boolean stateful() default false;
    int maxAttempts() default 3;最大重試次數(shù)
    String maxAttemptsExpression() default "";最大嘗試次數(shù) 賦值后會覆蓋 maxAttempts 可以使用SpEL表達式
    Backoff backoff() default @Backoff; 延遲時間
    String exceptionExpression() default "";
    String[] listeners() default {};
}

通過以上的方式就能簡單的使用 retry了,只能對網(wǎng)絡失敗,或者對方接口異常進行重推,如果是參數(shù)問題,或者對方系統(tǒng)問題一直沒有修復則不起作用

retry的介紹就到這里了,還有一些其他用法,可以自行查閱api或者找一些別的帖子,如果有需要可以留言,我再繼續(xù)把其他示例補充上

到此這篇關(guān)于spring retry 配置及使用的文章就介紹到這了,更多相關(guān)spring retry使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JAVA二叉樹的幾種遍歷(遞歸,非遞歸)實現(xiàn)

    JAVA二叉樹的幾種遍歷(遞歸,非遞歸)實現(xiàn)

    這篇文章主要介紹了JAVA二叉樹的幾種遍歷(遞歸,非遞歸)實現(xiàn),需要的朋友可以參考下
    2020-12-12
  • springboot入門篇HelloWorld(圖文教程)

    springboot入門篇HelloWorld(圖文教程)

    springboot?springboot是一個全新的框架,它設(shè)計的目的簡化spring項目的初始環(huán)境的搭建和開發(fā),下面這篇文章主要給大家介紹了關(guān)于springboot入門篇HelloWorld的相關(guān)資料,需要的朋友可以參考下
    2023-12-12
  • Java本地高性能緩存的幾種常見實現(xiàn)方式

    Java本地高性能緩存的幾種常見實現(xiàn)方式

    在Java中緩存是一種常用的性能優(yōu)化技術(shù),用于在應用程序中加速訪問和查詢數(shù)據(jù)的速度,下面這篇文章主要給大家介紹了關(guān)于Java本地高性能緩存的幾種常見實現(xiàn)方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • 4位吸血鬼數(shù)字的java實現(xiàn)思路與實例講解

    4位吸血鬼數(shù)字的java實現(xiàn)思路與實例講解

    今天小編就為大家分享一篇關(guān)于4位吸血鬼數(shù)字的java實現(xiàn)思路與實例講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • java數(shù)據(jù)結(jié)構(gòu)實現(xiàn)雙向鏈表功能

    java數(shù)據(jù)結(jié)構(gòu)實現(xiàn)雙向鏈表功能

    這篇文章主要為大家詳細介紹了java數(shù)據(jù)結(jié)構(gòu)實現(xiàn)雙向鏈表功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • java 各種數(shù)據(jù)類型的互相轉(zhuǎn)換實例代碼

    java 各種數(shù)據(jù)類型的互相轉(zhuǎn)換實例代碼

    這篇文章主要介紹了java 各種數(shù)據(jù)類型的互相轉(zhuǎn)換實例代碼,需要的朋友可以參考下
    2020-10-10
  • java中進程與線程_三種實現(xiàn)方式總結(jié)(必看篇)

    java中進程與線程_三種實現(xiàn)方式總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄猨ava中進程與線程_三種實現(xiàn)方式總結(jié)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 什么是springMVC?視圖和視圖解析器實例代碼

    什么是springMVC?視圖和視圖解析器實例代碼

    在 springMVC 中的目標方法最終返回都是一個視圖,返回的視圖都會由一個視圖解析器來處理,這篇文章主要介紹了什么是springMVC?視圖和視圖解析器,需要的朋友可以參考下
    2023-09-09
  • springboot自定義校驗注解的實現(xiàn)過程

    springboot自定義校驗注解的實現(xiàn)過程

    這篇文章主要介紹了springboot自定義校驗注解的實現(xiàn)過程,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • Spring配置文件中密碼明文改為密文處理的通用方式

    Spring配置文件中密碼明文改為密文處理的通用方式

    SpringBoot和SpringCloud中涉及多個配置文件,配置文件中對于密碼默認是明文方式,這種方式在生產(chǎn)環(huán)境一般是不被允許的,為避免配置文件中出現(xiàn)明文,應當在配置文件中配置為密文,然后在啟動時在程序內(nèi)部完成解密,本文提供了通用的處理方式,需要的朋友可以參考下
    2025-01-01

最新評論