我有一种情况需要在我的系统中使用两个属性文件。
System.properties
key.supportiveFile=C:\keypath\supportive.properties
此密钥路径,可以在类路径之外。我想保持这条路 Supportive.properties作为System.properties中的键。 supportive.properties文件有
supportive.properties。
Supportive.properties具有键key1,key2。 supportive.properties文件中的属性必须使用上下文加载。
理想情况下,我的属性文件将显示如下。
supportive.properties
key1=value1
key2=value2
在spring.xml中,我尝试加载supportive.properties并注入spring.xml中定义的key1和key2值,如下所示。
我。加载属性文件
<context:property-placeholder location="classpath:System.properties,file:${key.supportiveFile}"/>
II。这是一个示例bean,我想把我的密钥注入bean。
<bean id="helloWorldBean" class="com.sample.snippets.enterprise.services.HelloWorld">
<property name="prefixProp" value="${key1}" />
<property name="suffixProp" value="${key2}" />
</bean>
服务器日志显示Could not resolve placeholder 'key.supportiveFile' in [file:${key.supportiveFile}]
但它失败并且未加载supportive.property文件。
请在技术上告知如何解决此问题。
答案 0 :(得分:0)
你可以这样做:
<context:component-scan base-package="com.foo.bar.config"/>
<context:property-placeholder location="file:${key.supportiveFile}" />
<bean id="helloWorldBean" class="com.sample.snippets.enterprise.services.HelloWorld">
<property name="prefixProp" value="${key1}" />
<property name="suffixProp" value="${key2}" />
</bean>
并在com.foo.bar.config
内,您有以下类:
package com.foo.bar.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@PropertySource("classpath:/System.properties")
public class SpringConfig{
}
此方法的解释来自this JIRA issue。