私は春の再試行プロジェクトを試してきました。@Retryable 機能を正常に使用しましたが、JDK 動的プロキシを使用して機能させることができません。
テストで次のコード スニペットを使用しています。
@Configuration
@EnableRetry
public class TestConfig {
@Bean
public MethodInterceptor retryInterceptor() {
return RetryInterceptorBuilder.stateful().maxAttempts(3).build();
}
}
@Service
public class RetryableServiceImpl implements RetryableService {
private int count = 0;
@Retryable(RuntimeException.class)
@Override
public void service() {
if (count++ < 2) {
throw new RuntimeException("Planned");
}
}
@Override
public int getCount() {
return count;
}
}
@ContextConfiguration(...)
public class RetryableServiceImplTest ... {
@Autowired
private RetryableService retryableService;
@Test
public void test() {
assertTrue(AopUtils.isAopProxy(retryableService));
assertTrue(AopUtils.isJdkDynamicProxy(retryableService));
assertFalse(AopUtils.isCglibProxy(retryableService));
retryableService.service();
assertEquals(3, retryableService.getCount());
}
}
ここで入手できるサンプル プロジェクト: https://github.com/maddenj-ie/retry.git
だから、私の質問は
これは、cglib または JDK 動的プロキシのいずれかを使用して機能する必要がありますか?
もしそうなら、私の設定の何が問題になっていますか?
助けてくれてありがとう。
よろしく、ジョー