template.setRetryPolicy(policy) 抛出语法错误

template.setRetryPolicy(policy) is throwing syntax error

在我的应用程序中,我正在调用 Web 服务。所以我想实现 Spring 重试机制,使处理更健壮,更不容易失败。这是我第一次使用 Spring Retry

我创建了一个应用程序服务 class,我在其中声明了 RetryTemplate 并设置了 RetryPolicy。

但是它抛出以下语法错误

"Multiple markers at this line
- Syntax error, insert "Identifier (" to complete MethodHeaderName
- Syntax error on token ".", @ expected after this token
- Syntax error, insert ")" to complete MethodDeclaration" 

即使我使用 ctrl+space 也不会显示 setRetryPolicy() 方法。

下面是我的class:

import java.util.Collections;

import org.springframework.retry.policy.SimpleRetryPolicy;

import org.springframework.retry.support.RetryTemplate;

public class ApplicationServiceRetry {

    SimpleRetryPolicy policy = new SimpleRetryPolicy(5,Collections
            .<Class<? extends Throwable>, Boolean> singletonMap(Exception.class, true));
    RetryTemplate template = new RetryTemplate();
    template.setRetryPolicy(policy);  //it's throwing error here

}

我指的是 http://docs.spring.io/spring-batch/reference/html/retry.html。 这里我使用的是Spring-retry 1.1.5.RELEASE.

??

template.setRetryPolicy(policy);

您不能只在 class 中放置任意代码 - 它必须在方法或初始化块中...

public class ApplicationServiceRetry {

    SimpleRetryPolicy policy = new SimpleRetryPolicy(5,
            Collections.<Class<? extends Throwable>, Boolean> singletonMap(Exception.class, true));

    RetryTemplate template = new RetryTemplate();

    {
        template.setRetryPolicy(policy);
    }

}