我有一个 .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;
}
}
我也对此类问题的其他解决方案非常感兴趣。
提前致谢!
您可以将注入点上的前缀覆盖为:
@Inject
@ConfigMapping // uses the one set in the interface
Generic generic
@Inject
@ConfigMapping(prefix = "override")
Generic genericOverride