Micronaut - 解析属性文件中的占位符

kTe*_*est 6 micronaut

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

我正在使用外部属性文件 - 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}
Run Code Online (Sandbox Code Playgroud)

使用 -Dmicronaut.config.files=path_to_dev.properties 加载它

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

    public Config () {

    }
}

Run Code Online (Sandbox Code Playgroud)

当我在另一个类中注入 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}
Run Code Online (Sandbox Code Playgroud)

Tra*_*nov 1

这是开发人员在尝试迁移现有项目时遇到的第一件事,因为属性并不总是不遵循烤肉串的情况。如果您迁移项目或第三方库,通常会遇到此问题,但行为是预期的并记录在案。

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

最后,它只是将任何蛇形命名法或骆驼命名法属性转换为烤肉串命名法。