【问题标题】:Spring @Lazy annotation not working with kotlinSpring @Lazy 注释不适用于 kotlin
【发布时间】: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


【解决方案1】:

更新您的 Kotlin 编译器。 @Lazy 在 Kotlin v1.3.x 中对我来说很好。

【讨论】:

    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 2021-11-15
    • 2014-08-31
    • 2016-05-01
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多