spring - 数据类中的构造函数注入
问题描述
我正在尝试以下操作:
@Configuration
@ConfigurationProperties(prefix = "my")
data class MyValueConfig(
@Value("\${my.value1}") var value1: Int? = null,
@Value("\${my.value2}") var value2: String? = null,
@Value("\${my.value3}") var value3: String? = null
)
Spring 不连接值字段,它们为空。因为 Spring 需要一个默认构造函数,我的假设是我可以像这样提供它。因此,可空类型。
这是有效的,因为它基于 setter 注入:
@Configuration
@ConfigurationProperties(prefix = "my")
class MyValueConfig {
@Value("\${my.value}") lateinit var value1: Int = 0
@Value("\${my.value2}") lateinit var value2: String
@Value("\${my.value3}") lateinit var value3: String
}
是否可以使用 kotlin 中的构造函数注入data class
?
解决方案
要对数据类进行构造函数注入,请使用构造函数上的@Autowired
注释
@Configuration
@ConfigurationProperties(prefix = "my")
data class MyValueConfig @Autowired constructor(
@Value("\${my.value1}") var value1: Int? = null,
@Value("\${my.value2}") var value2: String? = null,
@Value("\${my.value3}") var value3: String? = null
)
推荐阅读
- java - 将未知反射类的类型更改为泛型类型
- java - Java为什么“readAllBytes”和“readNBytes”方法不同步?
- python - 由于 OSError,推送到 Heroku 失败,命令“python setup.py egg_info”失败,错误代码为 1
- php - 选择记录仅限于具有第二个表的特定值的记录
- css - 扩展引导导航栏,仅向右,双色
- yaml - 映射中的yaml锚?
- python - 在 IDLE 未显示且 IDLE 子进程未建立连接的情况下进行编辑
- python - 使用 matplotlib 保存 2D 动画
- azure - 我们如何使用事件网格和服务总线改进我们的架构?
- java - 比较器如何工作?