澄清
在kotlin
命中版本1.0之前询问了这些问题。现在,示例中的语言语法已经过时,请遵循官方文档。
我正在玩 kotlin 和春季DI 。 我想使用基于构造函数的依赖注入,所以我需要注释构造函数。
我尝试了以下方法:
Configuration
Import(javaClass<DataSourceConfig>())
public open class AppConfig(dataSource: DataSource) {
private val dataSource: DataSource
Autowired {
this.dataSource = dataSource
}
}
Configuration
public open class DataSourceConfig {
Bean
public open fun dataSource(): DataSource {
// source omitted
}
}
P.S。我正在使用Kotlin M10.1和Spring 4.1.4
更新 在kotlin中可以注释构造函数。 问题是不允许在@Configuration中使用基于构造函数的DI
答案 0 :(得分:16)
嗯,我认为自从这个问题发布以来,语法发生了根本性的变化。当前的方式(根据docs)是在您的类名和参数之间添加关键字constructor
并注释 ,即
public class AppConfig @Configuration constructor(dataSource: DataSource) {
//...
}
答案 1 :(得分:1)
尝试写:
Configuration
public open class AppConfig [Import(javaClass<DataSourceConfig>())] (dataSource: DataSource) {
//...
}
答案 2 :(得分:0)
这种语法对我有用:
Configuration
Import(javaClass<DataSourceConfig>())
public open class AppConfig {
private val dataSource: DataSource
Autowired constructor(dataSource: DataSource){
this.dataSource = dataSource
}
}