我们有一个基于 JAX-RS 的 Web 应用程序,它需要从属性文件中读取一些配置。我编写了一个加载这些属性的 ConfigurationProvider 帮助程序类。该类将在多个类中使用。我的问题是 ConfigurationProvider 应该何时何地初始化?
public class ConfigurationProvider {
private static Properties properties;
private static ConfigurationProvider config;
private static final String XYZ_PROPERTIES = "xyz.properties";
static {
config = new ConfigurationProvider();
}
private ConfigurationProvider() {
try {
InputStream in = this.getClass().getClassLoader().
getResourceAsStream(XYZ_PROPERTIES);
properties = new Properties();
properties.load(in);
} catch(IOException ie) {
ie.printStackTrace();
}
}
public static ConfigurationProvider getInstance() {
return config;
}
public String get(String propname) {
return properties.getProperty(propname, null);
}
}
问候
最佳答案
http://docs.oracle.com/javaee/5/api/javax/annotation/PostConstruct.html
您可以在 JAX-RS 资源类中使用 PostConstruct 方法。
@PostConstruct
private void init() {
/initialize...
}
但是,我不确定定义单例的应用程序是个好主意。如果您使用的是 Java EE 环境,则可以改用 ApplicationScoped bean。
http://docs.oracle.com/javaee/6/api/javax/enterprise/context/ApplicationScoped.html
关于java - 何时初始化 Java EE webapp 中的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14929999/