基於 Retryable註解的spring重試機制

2021-10-07 20:54:42 字數 1040 閱讀 2843

1.通過while迴圈或者捕獲異常後做處理。

2.使用spring提供的重試機制,這種方式的好處是基於aop實現,沒有**入侵。

org.springframework.retry

spring-retry

@enableretry

public static void main(string args) catch (exception e)",e);

} }}

@retryable(value = exception.class,maxattempts = 3,backoff = @backoff(delay = 2000,multiplier = 1.5))

public void cacheproduct(string productcode) throws exception

//重試指定次數仍然失敗後 統一由同乙個類中的@recover註解的方法做處理(類似於全域性異常處理的方式)

「方法所在的類不能是介面的實現類" 似乎是不成立,之前測試可能是因為@recover註解的方法與重試方法不在同一類中導致重試完後沒有被處理而是直接丟擲了異常。3.如果重試的方法有返回值,那麼在重試次數用完後如果仍然失敗也不會被@recover註解的方法做處理。

4.如果重試方法中使用了try catch處理了異常而沒有丟擲去,那麼重試不會起作用,第一次異常被處理後就不會再進行重試了

基於註解的DI

上一回說到ioc的基於xml配置方法的注入,現在來聊一下基於註解的注入。使用註解會顯得比配置簡單好多,僅僅需要幾個註解就搞定了,比如下面的 school import org.springframework.beans.factory.annotation.value import org.spri...

基於註解的Spring AOP

spring aop 基本概念 url joinpoint api url 1.定義註解 target retention retentionpolicy.runtime documented public inte ce testannotation 2.定義切面 切面 aspect 在sprin...

基於註解的AOP

aop是oop的延續,是aspect oriented programming的縮寫,意思是面向切面程式設計。可以通過預編譯方式和執行期動態 實現在不修改源 的情況下給程式動態統一新增功能的一種技術。aop實際是gof設計模式的延續,設計模式孜孜不倦追求的是呼叫者和被呼叫者之間的解耦,aop可以說也...