Конфигурация базы данных apache commons не поддерживает кэширование.
Я расширяю DatabaseConfiguration для поддержки кэширования, чтобы он не попадал в мою базу данных постоянно.Что касается перезагрузок, я создаю свой конфиг там, где он мне нужен, и выбрасываю его, когда с ним покончено.
MyConfig cfg = new MyConfig("jdbc/configdatabase");
public class MyConfig extends DatabaseConfiguration {
private WeakHashMap<String,Object> cache = new WeakHashMap<String,Object>();
public MyConfig(String datasourceString,String section) throws NamingException {
this((DataSource) new InitialContext().lookup(datasourceString),section);
}
protected MyConfig(DataSource datasource,String section) {
super(datasource, "COMMON_CONFIG","PROP_SECTION", "PROP_KEY", "PROP_VALUE",section);
}
@Override
public Object getProperty(String key){
Object cachedValue = cache.get(key);
if (cachedValue != null){
return cachedValue;
}
Object databaseValue = super.getProperty(key);
cache.put(key, databaseValue);
return databaseValue;
}
}