我在spring中加载一个属性文件:
<context:property-placeholder location="classpath:foo.properties"/>
但是如果我尝试在另一个上下文文件中加载另一个文件,我会收到错误。
答案 0 :(得分:6)
根据消息来源,您必须提供以逗号分隔的属性文件资源列表。 这应该适合你:
<context:property-placeholder location="classpath:foo1.properties,classpath:foo2.properties"/>
答案 1 :(得分:4)
如果您需要覆盖属性,可以执行以下操作:
<context:property-override location="classpath:override.properties"/>
OR
如果错误是由于找不到某个属性,您可以将ignoreUnresolvablePlaceholders
设置为true。
OR
如果错误是找不到资源(并且你没关系),你可以将ignoreResourceNotFound
设置为true。
OR
如果在查找系统属性时出错:
PropertyPlaceholderConfigurer不仅在您指定的属性文件中查找属性。默认情况下,如果它在指定的属性文件中找不到属性,它还会检查Java System属性。您可以通过使用以下三个支持的整数值之一设置configurer的systemPropertiesMode
属性来自定义此行为:
从不(0):永远不要检查系统属性
后备(1):如果在指定的属性文件中无法解析,请检查系统属性。这是默认值。
覆盖(2):在尝试指定的属性文件之前,首先检查系统属性。这允许系统属性覆盖任何其他属性源。
答案 2 :(得分:2)
问题 - 如何在spring config *中使用多个属性文件
在classPath中创建单独的prop文件 例如。 abc1.properties,abc2.propeties,abc2.propperties
在类路径中创建 propConfig.xml 类= “org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig” &GT;
类= “org.jasypt.encryption.pbe.StandardPBEStringEncryptor” &GT;
的类路径:/abc1.properties 强> 的类路径:/abc2.properties 强> 的类路径:/abc3.properties 强>
为所有其他beanDefination.xml和propConfig.xml创建组合文件 的 AllSpringConfig.xml 强> 3.1确保以下属性configure和定位器bean仅在一个中定义 fiile即propConfig.xml 3.2确保propConfig.xml在任何其他配置文件之前
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd“&gt;
<import resource="SpringPropConfig.xml"/>
<import resource="abc1.xml"/> <!-- this may use props from abc1.prop -->
<import resource="abc2.xml"/> <!-- this may use props from abc2.prop -->
<import resource="abc3.xml"/> <!-- this may use props from abc3.prop -->
使用以下方法初始化bean ApplicationContext context = new ClassPathXmlApplicationContext(“AllSpringConfig.xml”);
注意 - 确保所有提到的文件都在类路径中,或者提供文件所在的正确路径。