Javaで私のサービスのヘルスチェックを実装しようとしています。これはSpring Bootを使用しています。このヘルスチェックでは、私が呼び出す複数のサービスがあり、それぞれのサービスの結果がNULLであることを確認する必要があります。各サービスの戻り値は、サービス名とエラーが発生したかどうかのブール値を含むオブジェクトに格納されます。現在、私はこの方法でこの方法を持っており、私にとっては非常に醜いです。私はこれを実装する別の方法を考えることができません。Javaでこのヘルスチェックを行う正しい方法はありますか?
Public HealthCargo() {
string service_name;
boolean error;
}
@Resource(name = "AService")
private AService aService;
@Resource(name = "BService")
private BService bService;
@Resource(name = "CService")
private CService cService;
@RequestMapping(method = RequestMethod.GET, value = "/healthcheck", produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseBody
public List<HealthCargo> healthcheck() {
List<HealthCargo> checks = new ArrayList<>();
boolean error = true;
SomeCargoA someCargoA = new SomeCargoA();
SomeCargoB someCargoB = new SomeCargoB();
try {
someCargoA = aService.fetch("182731");
if (someCargoA == NULL)
error = false;
} catch (Exception e) {
} finally {
checks.add(New HealthCargo("aService", error));
}
error = true;
try {
someCargoB = bService.fetch("182731");
if (someCargoB == NULL)
error = false;
} catch (Exception e) {
} finally {
checks.add(New HealthCargo("bService", error));
}
error = true;
.... // Similar logic for service C
return checks;
}
エラーがfalseの場合は、それらの横に緑のチェックマークで、リスト内のすべてのサービスとそのステータスを表示します。この関数を呼び出して何か他のものがあるでしょう。
私はアサーションを使用することを考えましたが、アサートにエラーがあった場合はプログラムを停止します。私はtrueまたはfalseと呼び出しの結果を格納する必要があり、オブジェクトがnullであるかどうかによって異なります。 3つの異なるtry catchステートメントを使用する以外に、これを行う別の方法は何ですか?