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. ВЫПУСК

У меня есть предположение, что это потому, что статические объекты больше не имеют пружинного контекста, но я не уверен и не знаю, как это исправить.

Итак, мой вопрос: почему он больше не работает и как это исправить (или преодолеть)?

0 ответов

Другие вопросы по тегам