Spring REST サービスへの REST 呼び出しを行う多数のメソッドを持つサービス クラスがあります。各メソッドは次のようになります。
public void getUser() {
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(RESOURCE_URL);
// Get response as String
String response = service.path("/addUser").accept(MediaType.TEXT_PLAIN)
.get(String.class);
return response;
}
上記は正常に動作しますが、メソッドが呼び出されるたびに、ClientConfig、Client、および WebResource の新しいインスタンスが作成されることが少し心配です。上記を変更し、ClientConfig、Client、および WebResource をクラス レベルのインスタンス変数として作成すると、どのような副作用がありますか? つまり、次のように変更します。
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(RESOURCE_URL);
public void getUser() {
// Get response as String
String response = service.path("/addUser").accept(MediaType.TEXT_PLAIN)
.get(String.class);
return response;
}
public void getUserAccount() {
// Get response as String
String response = service.path("/getUserAccount").accept(MediaType.TEXT_PLAIN)
.get(String.class);
return response;
}
複数のユーザーが同時に異なるメソッドを呼び出すと、上記は失敗する可能性がありますか? 上記を構成する最良の方法は何ですか?
Jersey のクライアント メソッドに close() メソッドがあれば、メソッドをそのままにして、メソッド内のリソースを閉じることができたはずです。