SimpleRetryPolicy:Throwable映射中的布尔值表示什么?

时间:2016-05-02 17:27:30

标签: spring spring-retry

SimpleRetryPolicy的构造函数允许您指定哪些例外是可重试的。太好了!

但是,此输入是一个映射,其中键是Throwable的类,值是布尔值。没有任何关于这个布尔值用于什么的文档 - 这里的任何人都知道吗?

基本上,它填充了一个SubclassClassifier的实例,其文档太难以让我的简单头脑理解:

  

基于地图的参数化对象类型的分类器。根据对象与提供的类型映射的继承关系对对象进行分类。如果要分类的对象是所提供的映射的键之一,或者是其中一个键的子类,则返回该键的映射条目值。否则返回默认值,默认值为null。

1 个答案:

答案 0 :(得分:2)

请参阅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);
}

即。如果throwable被分类(在地图中),则返回该映射条目的布尔值。

这允许您设置一组例外,明确说明您想要重试某些异常。

考虑异常Bar扩展FooBar有一些兄弟类,比如BazQux

如果您向地图添加Foo:trueBar:false,则Foo及其Bar以外的所有子类都可以重试。