【发布时间】:2019-08-13 18:29:54
【问题描述】:
我正在尝试使用 Kotlin 在 Spring Boot 应用程序中延迟初始化一个 bean。
我有一个 spring @Configuration 文件,其中有一个懒惰注释的 bean:
@Lazy
@Bean
open fun createSomething(): Something {
return Something("yo")
}
我有一个休息控制器,我已经懒惰地自动连接了 bean
@Lazy
@Autowired
private lateinit var something: Something
我正在访问@RequestMappings 之一的类中的变量
println(something.thing)
我在@Bean 方法中添加了日志,并确认 bean 没有被急切地初始化。问题是即使在访问时它也没有被初始化。该课程是一个简单的公开课。
open class Something(val thing: String)
bean 初始化永远不会发生。我不知道我做错了什么。
以下是版本:
Java:1.8.0_191
科特林:1.1.60
Spring Boot:2.0.2.RELEASE
我不知道这是否是某种版本问题,或者我正在使用惰性 bean。感谢您的帮助。
【问题讨论】:
-
您使用的是几年前的 Kotlin。例如,更新到 1.3.21 可能是个好主意
标签: java spring spring-boot kotlin