我有一个服务类,它有许多对 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() 方法,我可以让它们保持原样,只关闭方法内的资源。