Есть ли способ содержать разные состояния приложения в параллельно запускаемых классах с использованием Spring Framework'а?

Всем привет!

Есть проект с UI-автотестами. Есть класс, описывающий состояние веб-приложения (просто некоторые настройки, которые нужно считывать для проведения проверок, типа языка, часового пояса и т. д.). Есть тестовые JUnit-овские классы, которые запускаются параллельно, каждый в своём контейнере, вместе с приложением в браузере. Нужно, чтобы у каждого из этих классов было по собственному Spring-объекту ("бину") с состоянием, которое задаётся один раз, при запуске класса (потому что уже весь проект завязан на Spring'е), и живёт столько же, сколько живёт этот класс. Сейчас используется область singleton и поэтому там, где нужно иное состояние, приходится запускать классы последовательно, чтобы избежать конфликтов (так как бин с состоянием один на всех).

Можно ли провернуть такое с помощью Spring'а? Может быть, можно создавать свой контекст в каждом таком классе, но будут ли методы, вызываемые из этого класса, брать бин с состоянием именно из этого контекста?
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
Adorne
@Adorne Автор вопроса
Если кому нужно, задействовал SimpleThreadScope, под мои условия подошло отлично (каждый запущенный класс у JUnit'а это один поток).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
jaxtr
@jaxtr
JavaEE/Spring-разработчик
Нужно сделать scope="prototype" у бина, чтобы для каждого случая создавался новый экземпляр бина.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы