私は春の再試行を試みており、私は奇妙な問題に直面しています。レストコントローラ内のメソッドで再試行注釈を使用すると、再試行は機能しません。しかし、そのメソッドを別のサービスクラスに移すと、それは機能します。 Springの再試行がRestControllerで機能しない
@RestController
public class HelloController {
@RequestMapping(value = "/hello")
public String hello() {
return getInfo();
}
@Retryable(RuntimeException.class)
public String getInfo() {
Random random = new Random();
int r = random.nextInt(2);
if (r == 1) {
throw new RuntimeException();
} else {
return "Success";
}
}
}
をしかし、次のことを行います:次のコードは動作しないコントローラで使用された場合
@Retryable
が機能しない理由
@RestController
public class HelloController {
@Autowired
private SomeService service;
@RequestMapping(value = "/hello")
public String hello() {
String result = service.getInfo();
return result;
}
}
@Service
public class SomeService {
@Retryable(RuntimeException.class)
public String getInfo() {
Random random = new Random();
int r = random.nextInt(2);
if (r == 1) {
throw new RuntimeException();
} else {
return "Success";
}
}
}
私の質問はありますか?