Quarkus 加载多个配置以创建同一 Java 配置类的多个实例

问题描述 投票:0回答:1

我有一个 .properties 文件,其中包含以下示例内容:

test1.name=test1
test1.url=www.test.com

test2.name=test2
test2.url=www.test2.com

我想将其映射到 Quarkus 中同一 Java 接口/类的不同实例。目前,我找到了以下方法,应该可行:

interface Generic {
  String name();
  String url();
}

@ConfigMapping(prefix = "test1")
interface Test1 extends Generic {}

@ConfigMapping(prefix = "test2")
interface Test2 extends Generic {}

但是,由于我需要基于配置的此类的多个实例,所以我想问是否有更智能的方法来实现此目的(不需要那么多接口)。这是一个受 Spring Boot 启发的示例:

@Dependent
class Configuration {

  @Produces
  @Name("test1")
  Generic test1(@ConfigMapping(prefix="test1") Generic test1) {
    return test1;
  }

  @Produces
  @Name("test2")
  Generic test2(@ConfigMapping(prefix="test2") Generic test2) {
    return test2;
  }
}

我也对此类问题的其他解决方案非常感兴趣。

提前致谢!

java configuration quarkus properties-file smallrye
1个回答
1
投票

您可以将注入点上的前缀覆盖为:

@Inject
@ConfigMapping // uses the one set in the interface
Generic generic

@Inject
@ConfigMapping(prefix = "override")
Generic genericOverride
© www.soinside.com 2019 - 2024. All rights reserved.