【发布时间】:2015-03-24 12:01:32
【问题描述】:
我有一个如下编写的类,方法doSomethingForMe() 从servlet 调用。 servlet 可以为同一方法发出多个请求。
Servlet 从 Spring 获取对象。由于此类正在由 Spring Bean 工厂初始化。
public class ClassLevelVariableTest
{
private List<String> errorLists;
public void doSomethingForMe()
{
errorLists = new ArrayList<>();
// plus do the rest functionality
if (!errorLists.isEmpty())
{
prepareErrorList(errorLists);
}
}
private void prepareErrorList(List<String> errorLists)
{
for (String errorString : errorLists)
{
System.out.println(errorString);
}
}
}
所以我的第一个查询是:在后续请求中是否有机会获得errorLists 变量的相同对象?
是否有机会让第二个请求覆盖该变量?
【问题讨论】:
-
不,没有机会,因为每次调用该方法时您都在创建
new Object of ArrayList!! -
你必须在servlet中创建这个类的一个新对象,对吧?如果每次都有新对象,对
errorList变量有什么影响? -
我也在用弹簧。所以 ClassLevelVariableTest 类是一个spring bean。所以不会有新的运营商。
标签: java multithreading servlets