您可以让它加载自定义属性类,而不是强制转换类加载器,例如
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
不需要线程本地或强制转换当前的类加载器。