我的应用程序有不同的客户(大约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();
}
答案 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;
}