@Value("\${datasource.host}")
private val host: String = ""
我在KOTLIN中编写了以下代码,效果很好。
我不明白如何将host
注入到host
中。
据我所知,不应该注入该值,因为host
变量为val。
此代码如何工作?
答案 0 :(得分:0)
简短的回答:春天是神奇的!
对于Kotlin属性,val
不一定表示该属性是常量。 (此处与Java final
并不完全等效。)这仅表示存在一种get()
方法,但没有set()
方法。
这为值更改其他方式留下了可能性。 (例如,该属性可以具有返回不同值的自定义getter。)
我不确定Spring如何发挥其魔力;它可以直接设置属性的后备字段,也可以创建一个可以隐藏的子类。无论如何,它完全能够设置val
属性。 (您也可以在Hibernate中看到它。)