使用 Kotlin 在 Spring 中注入组件的最佳方式

Best way to inject component in Spring with Kotlin

为了使用 Spring/Kotlin 注入 bean,我知道两种方法: 将其传递给构造函数:

@Service
open class MyService @Autowired constructor(

        @Autowired
        val myRepository: MyRepository

)

使用 'lateinit' 关键字:

@Service
open class MyService {

    @Autowired
    lateinit var myRepository: MyRepository

}

我知道这两部作品,但我想知道哪一部最好?有什么问题我可以使用一种解决方案而不是另一种解决方案吗?

谢谢!

我更喜欢构造函数。 Spring 如果只有一个构造函数,则不再需要 @Autowired 注解。这样你就不必打开 class(你做一些 Spring 的事情,比如 @Scheduled 但这是另一个问题)或使用 var。它也很容易阅读。

这就是您所需要的

@Service class MyService (private val myRepository: MyRepository)