Elw*_*ood 3 java spring design-patterns
我目前正在维护一个应用程序,并注意到在Spring连接中定义为Singleton的许多对象在其方法中创建了其他对象的新实例.
例如,每次调用login()方法时都会有一个LoginService Singleton创建一个新的LoginDetails实例.LoginDetails是瞬态的,只有执行login()方法才需要.
我的问题是,如果Spring为LoginService创建了一个单独的对象,那么如何将LoginDetails的实例标记为垃圾收集,作为对创建它们的对象的引用并使用它们永远不会终止?
我的意思是:
public void deleteCustomer(Long customerId, HttpServletRequest request) {
CustomerType customerType = new CustomerType();
customerType.setCustomerId(customerId);
CustomerDeleteRequestType deleteRequest = new CustomerDeleteRequestType();
deleteRequest.setCustomer(customerType);
CustomerDeleteResponseType deleteResponse = mmmwsClient.executeRequest(deleteRequest);
log.debug("Delete Response Recieved from Server for Customer Name Update " + deleteResponse.getServiceResult());
}
Run Code Online (Sandbox Code Playgroud)
由于使用的字段只是方法变量而不是实例变量,我想在方法完成时会破坏对它们的引用?
我对Spring Singleton的理解是否正确?
谢谢
如果单例不维护对它创建的对象的引用(通过将它们存储在实例字段中),并且如果没有其他可到达对象维护对这些对象的引用,则它们将变得无法访问,并且垃圾收集器将收集它们.
谁创建了一个对象对垃圾收集器来说并不重要.谁有对象的引用是.
| 归档时间: |
|
| 查看次数: |
967 次 |
| 最近记录: |