Scala 2.13 с пружиной в контексте статического объекта не работает?
Я обновляю Программное обеспечение с Scala 2.12.8 до 2.13.0 и обнаружил странное поведение, пытаясь внедрить Бин с помощью Spring, который работал нормально в 2,12,8 .
Чтобы поместить всех на одну и ту же страницу, это короткий тест для воспроизведения:
TestUp Scala класс
@Service
class TestUp {
val value: String = "test"
}
Зная, что конфигурация bean-компонента уже отображает пакет вышеупомянутого класса, я пробую это:
Скала класс:
class LoginHandler extends SimpleUrlAuthenticationSuccessHandler {
@Autowired
val test: TestUp = null
}
Расширение класса Spring SimpleUrlAuthenticationSuccessHandler выполняет мою логику аутентификации, но я упростил сценарий, чтобы объяснить, что этот класс находится в контексте Spring.
Когда рабочий процесс проходит через этот класс, у меня есть идеальная инъекция в мой "тестовый" объект.
Теперь возникает реальная проблема: когда я пытаюсь внедрить этот же бин TestUp в статический объект scala, он просто не работает. Например:
object tests {
@Autowired
val test: TestUp = null
}
Так что здесь у меня нет явных ошибок, но объект "тест" остается нулевым навсегда. То же самое происходит, когда я делаю инъекцию в класс, который не распространяется ни на один класс Spring и не имеет никаких аннотаций Spring!
Это работало на предыдущей версии scala (2.12.8), но после обновления больше не работает. Я не нашел ничего об этом в примечаниях по обновлению.
Кстати версия моего ядра Spring 4.2.9. ВЫПУСК
У меня есть предположение, что это потому, что статические объекты больше не имеют пружинного контекста, но я не уверен и не знаю, как это исправить.
Итак, мой вопрос: почему он больше не работает и как это исправить (или преодолеть)?