Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.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 使用相对于配置文件的路径引用Spring属性文件_Java_Spring_Properties - Fatal编程技术网

Java 使用相对于配置文件的路径引用Spring属性文件

Java 使用相对于配置文件的路径引用Spring属性文件,java,spring,properties,Java,Spring,Properties,我正在将Spring配置文件中的属性移动到一个单独的属性文件中。这包含在配置文件中,并带有 <bean class="org.springframework.beans.factory.config.PropertyPlaceHolderConfigurer"> <property name="location" value="file:properties/${CONFIG_MODE}/service.properties" /> </bean>

我正在将Spring配置文件中的属性移动到一个单独的属性文件中。这包含在配置文件中,并带有

<bean class="org.springframework.beans.factory.config.PropertyPlaceHolderConfigurer">
  <property name="location" value="file:properties/${CONFIG_MODE}/service.properties" />
</bean>

目前,属性文件的位置相对于服务器进程的当前工作目录

这就要求流程必须从特定的工作目录启动,更糟糕的是,它可能会获取一个完全不同的属性文件(当然是远程的),例如,如果它是在工作目录设置为服务的旧版本的情况下启动的

我想使用相对于包含配置文件的目录的路径引用属性文件

现在看来,这可能是我需要的,但我不知道如何在配置文件中使用它

谢谢


史蒂夫

我不知道怎么做

但是,您可以从类路径加载属性文件:

<bean class="org.springframework.beans.factory.config.PropertyPlaceHolderConfigurer">
  <property name="location" value="classpath:path/to/service.properties" />
</bean>


属性文件的类路径位置是一种更容易预测的情况,只要类路径设置正确,它就可以工作。

使用3.1,如果需要,可以将文件保留在类路径之外

使用以下bean定义

<bean class=
    "org.springframework.beans.factory.config.PropertyPlaceHolderConfigurer">
  <property name="location" 
    value="file:${props.path}/service.properties" />
</bean>

假设您已将config.properties文件放在WEB-INF中 然后:


类路径:../config.properties

很好的解决方案-谢谢。唯一的问题(我承认这根本不是一个严重的问题)是,有时能够直接查看/编辑属性文件很有用——例如在紧急情况下,或者进行一些快速测试。将它放在jar中并不能防止这种情况发生,但会让它变得有点麻烦。@stevec:它不必放在jar、文件中,它也可以放在类路径上的文件系统目录中。一旦我使用
@Value(${thing.inside.service.properties}”)
,这会起作用吗?谢谢。它对我有用+1
java ... -Dprops.path=path/to/where/it/is
<bean id="propertyConfigurerInternal"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
    <value>classpath:../config.properties</value>
</property>