声明kotlin中的全局变量默认为一个属性值



我试图直接从application.yml加载kotlin中的全局变量:

telegram:
token: foo

为了达到这个目的,在我的课上,我试过这样做:

@Value("${telegram.token}")
val botToken: String

但是它抛出了一个错误,说我需要初始化属性。(例如,这不会抛出错误,但这不是我期望的行为):

@Value("${telegram.token}")
val botToken: String = ""

我想要的是注入配置值(foo)到这个常量(botToken)。

或者将其作为参数添加到包含属性的bean的构造函数中:

class WhateverSpringManagedBeanClass(
@Value("${telegram.token}") private val botToken: String
)

或者尝试以下操作(这使得botToken可变):

@Value("${telegram.token}")
lateinit var botToken: String

首先你可以使用@Property(name = "telegram.token")

然后尝试

@Property(name = "telegram.token")
lateinit var token: String
private set

最新更新