【发布时间】:2015-08-10 09:54:23
【问题描述】:
我的应用程序上下文中有以下 bean:
<bean id="httpClient" factory-method="createHttpClient" class="com.http.httpclient.HttpClientFactory">
<constructor-arg>
<bean id="httpConfig" class="com.http.httpclient.HttpClientParamsConfigurationImpl">
<constructor-arg value="httpclient.properties"/>
</bean>
</constructor-arg>
</bean>
httpclient.properties 是我的属性文件的名称。我在HttpClientParamsConfigurationImpl 中使用这个参数来读取文件(不要太在意错误处理):
public HttpClientParamsConfigurationImpl(String fileName) {
try(InputStream inputStream = new FileInputStream("resource/src/main/properties/" + fileName)) {
properties.load(inputStream);
} catch (IOException e) {
LOG.error("Could not find properties file");
e.printStackTrace();
}
}
有没有办法在 bean 中传递整个文件位置,这样我就不必在创建 InputStream 时添加路径 resource/src/main/properties?
我尝试过classpath:httpclient.properties,但它不起作用。
【问题讨论】:
-
resource/src/main/properties/在你的类路径中吗?无论如何,为什么不将resource/src/main/properties/httpclient.properties传递为constructor-arg? -
我想避免传递整个位置以防万一它发生变化。我只是想给出文件名。是的,该文件夹在我的类路径中。
-
stackoverflow.com/a/7246629/1898397 这个答案在这里看起来很相关。