Jon*_*nyD 6 spring properties-file kotlin
我在尝试将环境变量值分配给变量时遇到错误lateinit。错误是“基本类型的属性上不允许使用'lateinit'修饰符”。
我的application.properties(读取环境变量)
my.property.from.properties.file=true
Run Code Online (Sandbox Code Playgroud)
我的服务类:
@Component
class MyService @Autowired constructor(
private val someService: SomeService) {
@Value("\${my.property.from.properties.file}")
private lateinit var myBooleanEnabled: Boolean
Run Code Online (Sandbox Code Playgroud)
给它赋值并不能解决问题。例如,与
private lateinit var myBooleanEnabled: Boolean = true
Run Code Online (Sandbox Code Playgroud)
我收到 2 个错误:
根据我读到的内容,我需要一个委托(https://kotlinlang.org/docs/reference/deleated-properties.html),但我无法完全掌握它。另外,如果有“更干净”的解决方案,我不想编写另一个方法来设置属性。有任何想法吗?
最简单的事情就是定义myBooleanEnabled为可空并删除lateinit
private var myBooleanEnabled: Boolean? = null
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它不会被解释为boolean字节码中的原语。
但是,就您而言,我建议构造函数注入。
| 归档时间: |
|
| 查看次数: |
8962 次 |
| 最近记录: |