在我的多垂直应用程序中,我想一次加载配置,然后使用koin将结果JsonObject
注入到每个垂直中。问题在于ConfigRetriever
的行为并不像我期望的那样。考虑以下示例:
class MainVerticle : AbstractVerticle() {
override fun start() {
val retriever = ConfigRetriever.create(vertx)
val config = ConfigRetriever.getConfigAsFuture(retriever).result()
println(config)
}
}
直觉上,我希望这能将配置文件加载到/resources/conf/config.json
下并打印所有键/值对。而不是这样做,它打印null
。但是,如果我将第三行更改为:
val retriever = ConfigRetriever.create(Vertx.vertx())
然后,JsonObject
用我的config.json
文件的属性填充。
Future#result
的文档说明以下内容
运算结果。如果操作失败,则为null。
那么操作成功但是没有加载配置吗?
我不太了解为什么我必须创建一个新的vertx
实例才能正确加载配置。我在这里想念什么?