我使用以下代码从我的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后再次调用此代码我不希望再次调用加载逻辑,并且只要应用程序处于活动状态,我希望列表处于活动状态并且可用。
有办法做到这一点吗?
答案 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
初始化类时初始化/执行一次。