区分多个属性文件

时间:2016-12-14 07:54:07

标签: java properties

我的应用程序有不同的客户(大约20个),每个客户都有自己的*.properties文件,其中的连接设置,属性参数是相同的。

目前,我为每个客户提供了一个自己的方法来读取属性并将其存储在Customer中。有20位客户,其充气。我现在正在寻找更好的解决方案。

    private final static Customer get_CustomerXXXX() {

        final Properties p = new Properties();

            p.load(S.class.getResourceAsStream("customerXXX.properties"));
            return new Customer (p.getProperty("PARAM1", p.getProperty("PARAM2", p.getProperty("PARAM3")
    }

    if(SPECIFIC_CUSTOMER.XXXX) {
        customerSettings = get_CustomerXXXX();

    } else if(SPECIFIC_CUSTOMER.BBBB) {
        customerSettings = get_CustomerBBBB();
    }

2 个答案:

答案 0 :(得分:0)

public class CustomerTest {
    private String identifier;

    public CustomerTest(String identifier) {
        this.identifier = identifier;
    }

    public Properties getProerties() {
    Properties p = null;
    try {
            p = new Properties();
            p.load(CustomerTest.class.getResourceAsStream("customer" + identifier + ".properties"));
      } catch (IOException e) {
            e.printStackTrace();
        }
        return p;
    }
}

这将是您在评论@OP中建议的方式。

答案 1 :(得分:0)

  

属性参数是相同的

如果您确定将来我也会一样。那么你只能第一次阅读属性文件。从下一次的病房开始,使用从以前的属性文件加载的值。

您可以在此处组合Singleton和Factory Method设计模式。

你应该有一个方法如下:

private final static Properties getProperties(String idetifier)
{
    Properties p = new Properties();
    p.load(S.class.getResourceAsStream("customer"+idetifier+".properties"));
    return p;
}