在整个应用程序中只将属性加载到应用程序中一次

时间:2016-06-19 22:32:33

标签: java initialization

我使用以下代码从我的Java应用程序中的文件加载属性

    private Resource resource = new ClassPathResource("/config.properties");
    private Properties properties = PropertiesLoaderUtils.loadProperties(resource);
    private List<String> connectionParameters = Arrays.asList(properties.getProperty("connection").split(","));

但是我不希望在将属性加载到connectionParameters后再次调用此代码我不希望再次调用加载逻辑,并且只要应用程序处于活动状态,我希望列表处于活动状态并且可用。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:5)

您可以使用singleton并加载一次。

答案 1 :(得分:1)

您可以简单地将这些字段转换为静态字段,以确保它们只会在类初始化上初始化下一步:

private static final Resource resource = new ClassPathResource("/config.properties");
private static final Properties properties = PropertiesLoaderUtils.loadProperties(
    resource
);
private static final List<String> connectionParameters = Arrays.asList(
    properties.getProperty("connection").split(",")
);

确实静态字段和静态块仅在ClassLoader初始化类时初始化/执行一次。