Вместо того, чтобы приводить загрузчик классов, он может загрузить пользовательский класс свойств, например,
public class AppClassloaderProperties
{
static Properties appProperties = loadAppProperties();
static private Properties loadAppProperties() {
// fetch app properties - does not need to be thread-safe, since each invocation
// of this method will be on a different .class instance
}
static public final Properties getApplicationProperties() {
// this method should be thread-safe, returning the immutable properties is simplest
return new Properties(appProperteis);
}
}
Поскольку этот класс загружается как часть загрузчика классов приложения, новый класс предоставляется для каждого приложения.Класс AppClassloaderProperties
для каждого приложения будет отличаться.Каждое приложение может затем получить свои свойства загрузчика классов, вызывая
Properties props = AppClassloaderProperties.getApplicationProperties();
// use the properties
Нет необходимости в локальных потоках или приведении текущего загрузчика классов.