Spring & kotlin: В чем разница между инсталляцией конструктора и латинита?

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

Вот услуга:

@Service class StuffService { @Inject lateinit var environment : Environment fun doStuff() = [HERE FUNCTION CODE USING environment VARIABLE] } 

Вот контроллер:

 @RestController class StuffController { @Inject lateinit var stuffService : StuffService @RequestMapping("/doStuff") fun doStuff() = stuffService.doStuff() } 

К сожалению, это дает мне эту ошибку, когда я начинаю springboot:

 kotlin.UninitializedPropertyAccessException: lateinit property environment has not been initialized 

Поэтому я попытался ввести через конструктор:

 @Service class StuffService(val environment : Environment) {...} @RestController class StuffController(val stuffService: StuffService) {...} 

С помощью этого кода он работает! У меня нет ошибки.

Интересно, в чем разница. Я не понимаю, что произошло. Может ли кто-нибудь помочь мне понять?

Intereting Posts
Поплавковый примитив магически становится 0 при использовании для запуска PointF или RectF в Kotlin Android Как получить KClass массива? Смешивание Java и проекта Kotlin In Gradle, Kotlin не может найти Java-класс Двухмерный общий поставщик массивов Kotlin Unit Test Всегда проходит при запуске из интерфейса Android Studio Как можно использовать UUID в качестве первичного ключа в двух таблицах с помощью Hibernate? При развертывании плагинов intellij копируются только зависимости. Почему я могу использовать имя выражения лямбда, но не имя функции? Смешивание классов и функций в Котлине? DigestUtils.md5Hex () генерирует неправильное значение хэша при передаче объекта String Котлин: Почему? оператор генерирует нулевые проверки при компиляции для jvm? Что отличается между двумя конструкторами? Как сопоставить java.util.Optional <Something> с чем-то? в Котлине Как я могу использовать kotlin-maven-plugin под jdk1.7? Hashmap с типом данных ArrayList (Kotlin)?