【问题标题】:Micronaut - Resolve place holders in properties fileMicronaut - 解析属性文件中的占位符
【发布时间】:2019-08-18 08:06:52
【问题描述】:

如何解析类似于下面的属性文件中的占位符。

我正在使用一个外部属性文件 - dev.properties,其条目类似于以下:

db.database: testdb
db.user: testuser
db.password: password
db.dev_server: server1
db.port: 9999
db.url: jdbc:database:${db.dev_server}:${db.port}/${db.database}

使用 -Dmicronaut.config.files=path_to_dev.properties 加载此文件

@ConfigurationProperties("db")
class Config {
    // all the properties (database, user etc) including getters and setters createted 

    public Config () {

    }
}

当我在另一个类中注入 Config 时,它无法解析 url 属性中的占位符。

Caused by: io.micronaut.context.exceptions.ConfigurationException: Could not resolve placeholder ${db.dev_server} in value: jdbc:database:${db.server}:${db.port}/${db.database}

【问题讨论】:

  • 我在 micronaut 文档中找到了答案。 Micronaut 将属性标准化为 kebab case,因此它无法解析 ${dev_server}。将其更改为 ${dev-server} 有效。有没有其他解决方法?
  • 这不是一种解决方法。这是你应该做的
  • 是否有可能记录哪些属性是存在的......因为有时很难找到

标签: micronaut


【解决方案1】:

这是开发人员在尝试迁移现有项目时首先遇到的问题,因为并非总是属性不遵循 kebab 案例。 如果您迁移项目或第三方库,通常会遇到此问题,但行为是预期的并记录在案。

文档很清楚,它需要烤肉串的情况。 https://docs.micronaut.io/latest/guide/index.html#_property_value_binding

最后,它只是将任何蛇盒或骆驼盒属性转换为烤肉盒。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 2018-04-21
    • 2021-04-03
    • 2014-03-23
    • 2015-01-16
    相关资源
    最近更新 更多