У меня есть класс, написанный следующим образом, метод doSomethingForMe()
которого doSomethingForMe()
из сервлета. Сервлет может выдавать несколько запросов для одного и того же метода. Сервлет получает объект из 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
в последующих запросах?
Есть ли вероятность получить переменную, переопределенную вторым запросом?
Если ваш компонент создается для каждого запроса, тогда нет, вы в порядке. Если Spring вводит один, повторно используемый для каждого запроса, тогда у вас есть проблема. Вы можете легко исправить это, не сохраняя errorLists в качестве переменной экземпляра. Измените свой код на это:
public class ClassLevelVariableTest
{
public void doSomethingForMe()
{
List<String> errorLists = new ArrayList<>();
Кажется, вы не используете errorLists как переменную экземпляра, поэтому все должно быть хорошо.
new Object of ArrayList
каждый раз, когда вызывается метод !!errorList
если каждый раз появляется новый объект?