Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加载后属性文件不存在时,使用外部属性文件的属性_Java_Spring - Fatal编程技术网

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

Java 加载后属性文件不存在时,使用外部属性文件的属性,java,spring,Java,Spring,我在spring应用程序中访问外部属性文件,如下所示。此文件包含敏感数据-应用程序需要的一些加密密钥 <context:property-placeholder location="file:${JBOSS_HOME}/123.properties,classpath:constants.properties" ignore-resource-not-found="true"/> <bean id="helloWorldBean" class="com.javacod

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

<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
类,该类保存
key1、key2、key3
,并使用
Singleton
对象吗


这是推荐的解决方案吗?

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

  • 检查文件是否被读取
  • 如果没有,睡一段时间
  • 如果“上一步”为真,则转到第一点(文件尚未读取)
  • 如果是,则删除文件并停止活动
需要重新启动应用程序时会发生什么情况?