java - 何时初始化 Java EE webapp 中的属性?

标签 java jakarta-ee jax-rs

我们有一个基于 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/

相关文章:

java - EJB2 - $Proxy0 无法转换为 com.TestEJB.TestEJBInterfaceRemote 错误

java - 在 JBoss esb 服务器中找不到我的 bean

internationalization - 我如何 i18n JAX-RS (Jersey) JAXB 注释响应

angularjs - Angular JS post 对象到 Jersey 为 null

java - 如何将带有字节操作的代码从 Java 翻译为 Kotlin?

java - 具有前 N 个解决方案的遗传算法

java - 在布局中找不到符号变量。如何解决这个问题?

java - 来自 leetcode 的 Java 中的两个和

java - 如何将Map数据结构委托(delegate)给辅助类?

java - JaxRS 和 Jackson 的多态性