带有aeonbits库的每个文件中具有不同属性的多个属性文件

时间:2019-03-21 06:43:38

标签: automation

我有多个测试环境属性文件(例如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? */
}

1 个答案:

答案 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