我有多个测试环境属性文件(例如Dev,QA,UAT)。每个属性文件具有不同的属性(每个属性文件唯一)。想知道如何使用aeonbits库配置类以映射形式读取属性,而不是使用(@Key)以及在接口中定义的方法名称读取每个属性...
import org.aeonbits.owner.Config;
@Config.Sources({
"classpath:${env}.properties"
})
public interface Environment extends Config {
@Key("UDS")
String getUDSUrl();
/* Can I define just one method that returns a map with all the properties
from the file? */
}
答案 0 :(得分:0)
实际上,您可以在@Sources
批注中使用变量扩展。
// The variable ${env} would be expanded from the System properties
// or from the environment properties, if defined there.
@Sources("classpath:${env}.properties");
interface MyConfig extends Config { ... }
// or you can change it programmatically:
ConfigFactory.setProperty("env", "dev"); // qa / uat / prod / etc.
// then things will work just as usual:
MyConfig cfg = ConfigFactory.create(MyConfig.class);
请查看在线文档中的Configuring the ConfigFactory。 另一种方法是here。