spring的重试机制无效@Retryable@EnableRetry

spring-retry模块支持方法和类、接口、枚举级别的重试

方式很简单,引入pom包


    org.springframework.boot
    spring-boot-starter-parent
    lastest


    org.springframework.boot
    spring-boot-starter-web



    org.springframework.retry
    spring-retry
    1.1.2.RELEASE


    org.aspectj
    aspectjweaver
    1.8.6

然后在@Configuration注解的类中添加@EnableRetry
最后在想要重试的方法上添加@Retryable(Exception.class)
由于retry用到了aspect增强,所有会有aspect的坑,就是方法内部调用,会使aspect增强失效,那么retry当然也会失效。

例如

public class demo {
    public void A() {
        B();
    }

    @Retryable(Exception.class)
    public void B() {
        throw new RuntimeException("retry...");
    }
}

这种情况B()不会重试。

你可能感兴趣的:(JAVA)