我正在spring-retry为我的业务逻辑提供重试策略。我有接口和实现它的服务public interface MyInterface { @Retryable(maxAttempts = 5, backoff = @Backoff(value = 0L)) void doSth() throws Exception; @Recover void recoverIfFailed(Exception e);}@Servicepublic class MyService implements MyInterface { public void doSth() throws Exception { throw new Exception(); } public void recoverIfFailed(Exception e) { System.out.println("Recovered!"); }}在这个配置中一切正常。但是我不明白为什么我不能@Recovery像这样将注释移动到接口实现:@Servicepublic class MyService implements MyInterface { @Retryable(maxAttempts = 5, backoff = @Backoff(value = 0L)) // -- this is working public void doSth() throws Exception { throw new Exception(); } @Recover // -- this is not working! public void recoverIfFailed(Exception e) { System.out.println("Recovered!"); }}我真的不想在界面中公开我的恢复方法(因为它似乎是我的内部逻辑),但由于这个问题我不能。任何人都可以建议什么可能是一个问题?
添加回答
举报
0/150
提交
取消