2016-05-12 7 views
0

In meiner MVC-Webanwendung basieren meine Dienste auf der Instanz Client, um HTTP-Anforderungen an einen Webdienst zu erstellen. Gemäß der Dokumentation Jersey, ist es ziemlich teuer zu initialisieren und zerstören Client so, welche Objekte habe ich bekam ich ein Singleton Client Instanz gerade erstellt haben:Jersey 2.22: Wann sollte ich die Client-Instanz schließen?

private static final Client client = ClientBuilder.newClient();

Meine Frage ist, wann soll ich diese Instanz zu schließen? Weil es das einzige Mal scheint, dass ich die Client nicht verwenden würde, wenn die Anwendung beendet wird.

Antwort

1

Wenn Sie es als eine Singleton in irgendeiner Weise definieren, dann müssen Sie nicht wirklich - es lebt und stirbt mit Ihrer Anwendung. Manchmal definieren Sie eine Client-Instanz für einen bestimmten kurz- oder mittelfristigen Bedarf (z. B. wenn Sie eine Anwendung haben, die mit mehreren Remote-Endpunkten kommuniziert, die sich während der Lebensdauer der Anwendung ändern). In diesen Fällen wäre es am besten, den Client zu irgendeinem Zeitpunkt explizit zu schließen, um klarzustellen, dass er nicht zur Wiederverwendung vorgesehen ist. Der schwierige Teil könnte sein, zu definieren, was "irgendwann" wirklich bedeutet.

Verwandte Themen