Spring @ Ленивая аннотация не работает с kotlin - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь лениво инициализировать бин в приложении весенней загрузки с Kotlin.

У меня есть весенний файл @Configuration, где у меня есть ленивый аннотированный боб:

@Lazy
@Bean
open fun createSomething(): Something {
    return Something("yo")
}

У меня есть контроллер покоя, где я лениво автоматически подключил компонент

@Lazy
@Autowired
private lateinit var something: Something

Я обращаюсь к переменной в классе в одном из @RequestMapping s

println(something.thing)

У меня естьдобавили журналы в методе @Bean и подтвердили, что bean не инициализируется с нетерпением.Проблема в том, что он не инициализируется даже при доступе.Класс является простым открытым классом.

open class Something(val thing: String)

Инициализация компонента никогда не происходит.Я не знаю, что я делаю неправильно.

Вот версии:

Java: 1.8.0_191

Kotlin: 1.1.60

Spring Boot: 2.0.2.RELEASE

Я не знаю, это какая-то проблема с версией или я что-то делаю с использованием ленивого компонента.Ценю помощь.

1 Ответ

0 голосов
/ 31 марта 2019

Обновите свой компилятор Kotlin. @Lazy отлично работает у меня в Kotlin v1.3.x.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...