2016-05-02 4 views
1

Der Konstruktor für die SimpleRetryPolicy können Sie angeben, welche Ausnahmen erneut versucht werden. Groß!SimpleRetryPolicy: Was bedeutet der Boolesche Wert in der Throwable-Map?

Diese Eingabe ist jedoch eine Zuordnung, in der der Schlüssel die Klasse Throwable ist und der Wert ein boolescher Wert ist. Es gibt keine Dokumentation darüber, wofür dieser boolesche Wert verwendet wird - weiß jemand hier?

Im Wesentlichen ist es auffüllt eine Instanz eines SubclassClassifier deren Dokumentation ist zu schwierig für meine einfachen Sinn zu verstehen:

Ein Classifier für eine parametrisierte Objekttyp auf einer Karte basiert. Klassifiziert Objekte nach ihrer Vererbungsbeziehung mit der gelieferten Typenkarte. Wenn das zu klassifizierende Objekt einer der Schlüssel der bereitgestellten Map oder eine Unterklasse eines der Schlüssel ist, wird der Map-Eintragswert für diesen Schlüssel zurückgegeben. Andernfalls wird der Standardwert zurückgegeben, der standardmäßig Null ist.

Antwort

1

Siehe SimpleRetryPolicy.retryForException():

/** 
* Delegates to an exception classifier. 
* 
* @param ex 
* @return true if this exception or its ancestors have been registered as 
* retryable. 
*/ 
private boolean retryForException(Throwable ex) { 
    return retryableClassifier.classify(ex); 
} 

das heißt, wenn die throwable klassifiziert (in der Karte), der Boolesche Wert dieser Karte Eintrag zurückgegeben wird.

Dadurch können Sie eine Reihe von Ausnahmen einrichten, wo Sie explizit angeben, dass Sie nicht eine Ausnahme wiederholen möchten.

Betrachten Ausnahme Bar erstreckt Foo (und Bar einige Geschwister Klassen hat, sagen Baz, Qux).

Wenn Sie hinzufügen Foo:true auf der Karte und Bar:false dann Foo und alle ihre Unterklassen außer Bar sind wiederholbar.

+0

Sie haben Ihre Antwort mit "See" gestartet, wollten Sie die Klasse auflisten, aus der dieser Javadoc stammt? – IcedDante

+0

Nach etwas googeln, ich denke, dass Sie beabsichtigten, den SimpleRetryTemplate-Quellcode zu verweisen: [https://github.com/spring-projects/spring-retry/blob/master/src/main/java/org/springframework/retry /policy/SimpleRetryPolicy.java#L104](https://github.com/spring-projects/spring-retry/blob/master/src/main/java/org/springframework/retry/policy/SimpleRetryPolicy.java#L104) – IcedDante

+1

hatte ich nicht vor, aber jetzt haben :) –