application.properties 中的动态键名

Dynamic key names in application.properties

我有一个应用程序可以作为多次送货服务。所有客户端都必须通过 application.properties 配置,但我需要将所有配置与一些 id 分开。

示例:

app.delivery.method.{clientId}=SFTP
app.{clientId}.sftp.username=some user
app.{clientId}.sftp.password=some pass
etc...

是否有可能通过覆盖一些 spring 启动的属性解析器或使用一些外部库来实现这样的目标。

我已经阅读了几乎所有的文档,也看到了很多示例,但没有找到任何东西。

提前致谢

这就是我解决类似问题的方法

@Configuration
@ConfigurationProperties(prefix = "app")
public class PropertiesConfig {
    @Autowired
    private Environment env;
    ...

    public String getDeliveryMethod(String clientId) {
        return env.getProperty("app.delivery.method."+clientId);
    }

    public String getClientSftpUsername(String clientId) {
        return env.getProperty("app."+clientId+".sftp.username");
    }
    ...
}