Kotlin/SpringBoot中@PropertySource的 @Values 注入困难

ovfsdjhp  于 2022-11-16  发布在  Kotlin
关注(0)|答案(1)|浏览(121)

我是Kotlin的新手。所以我试图在Sping Boot 中使用@Value注入来编写@PropertySource类,这样它就可以在其他地方使用。
我把这个类写成这样:

import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.PropertySource

@Configuration
@PropertySource("classpath:app-properties.properties")
class AppProperties {

    companion object {

        @Value("\${app.storage.types}")
        lateinit var appStorageType : String

        @Value("\${app.device.supported-protocols}")
        lateinit var appDeviceSupportedProtocols : String
        
        .
        .
        .
        .
        .
        .
    }
}

但当我运行应用程序时,我的以下代码中出现错误:

{
    "error": {
        "message": [
            "lateinit property appStorageType has not been initialized"
        ]
    }
}

我正在尝试获取其他类中的属性,如:

AppProperties.appStorageType

当我在Java中的时候,我们有getter和setter来做这件事。在Kotlin中的等价物是什么?
任何帮助都将不胜感激。

pgky5nke

pgky5nke1#

只需在www.example.com文件中初始化此属性app-properties.properties。
创建app-properties.properties文件并将以下行

app.storage.types.appStorageType=some value
app.device.supported-protocols.appDeviceSupportedProtocols=other value

相关问题