加载后属性文件不存在时,使用外部属性文件的属性

时间:2014-04-15 21:12:42

标签: java spring

我在Spring应用程序中访问外部属性文件,如下所示。此文件包含敏感数据 - 应用程序所需的一些deryption密钥。

<context:property-placeholder location="file:${JBOSS_HOME}/123.properties,classpath:constants.properties" ignore-resource-not-found="true"/>

<bean id="helloWorldBean"
    class="com.javacodegeeks.snippets.enterprise.services.HelloWorld">
    <property name="key1" value="${key1}" />
    <property name="key2" value="${key2}" />
     <property name="key3" value="${key3}" />
</bean>

启动应用程序后,出于安全目的,外部服务将删除属性文件。

由于属性文件在几分钟后无法使用,如何在删除密钥后访问密钥?

由于密钥已修复,我可以将值分配给保留Singleton的{​​{1}}类并使用key1,key2,key3对象吗?

这是推荐的解决方案吗?

1 个答案:

答案 0 :(得分:0)

为了避免在读取文件之前删除文件的可能问题,我还会添加一些逻辑,确认所有密钥都已读取并准备好使用。通过此检查后,应更新某些状态,表示可以删除该文件。删除文件的外部服务应该像

一样
  • 检查文件是否已被阅读;
  • 如果不是,请睡一段时间;
  • 如果之前为真,则转到第一点(文件尚未读取);
  • 如果是,请删除文件并停止活动;
相关问题