Spring @Lazy注解不适用于Kotlin

时间:2019-03-22 17:47:29

标签: java spring spring-boot kotlin

我正在尝试使用Kotlin在Spring Boot应用程序中延迟初始化bean。

我有一个spring @Configuration文件,其中有一个带有懒惰注释的bean:

If 'per_message=True', all entry points and state handlers                                      
must be 'CallbackQueryHandler', since no other handlers have a message context.

我有一个rest控制器,在那里我懒洋洋地自动连接了豆子

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

我正在@Lazy @Autowired private lateinit var something: Something 之一中访问类中的变量

@RequestMapping

我在println(something.thing) 方法中添加了日志,并确认没有急切地初始化Bean。问题是即使在访问时也没有初始化。该类是一个简单的开放类。

@Bean

bean初始化永远不会发生。我不知道我在做什么错。

以下是版本:

  

Java:1.8.0_191

     

科特琳:1.1.60

     

Spring Boot:2.0.2.RELEASE

我不知道这是否是某种版本问题,或者我在使用惰性bean时正在做一些事情。感谢帮助。

1 个答案:

答案 0 :(得分:0)

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