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

时间:2018-07-28 12:02:30

标签: spring kotlin inversion-of-control

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

@Service
open class MyService @Autowired constructor(

        @Autowired
        val myRepository: MyRepository

)

使用'lateinit'关键字:

@Service
open class MyService {

    @Autowired
    lateinit var myRepository: MyRepository

}

我知道这两个作品,但是我想知道哪个是最好的?使用一种解决方案而不是其他解决方案会遇到一些问题吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

我更喜欢构造函数。如果只有一个构造函数,Spring不再需要@Autowired注释。这样,您不必打开类(您需要处理一些Spring事情,例如@Scheduled,但这是另一个问题)或使用var。它也很容易阅读。

这就是您所需要的

@Service class MyService (private val myRepository: MyRepository)