何时在Java EE webapp中初始化属性?

时间:2013-02-18 05:24:26

标签: java java-ee jax-rs

我们正在使用基于JAX-RS的webapp&它需要从属性文件中读取一些配置。我编写了一个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);
}
    }  

此致

1 个答案:

答案 0 :(得分:1)

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