【问题标题】:Multiple properties file in springspring 中的多个属性文件
【发布时间】:2011-12-24 03:33:36
【问题描述】:

我在 spring 中加载了一个属性文件:

 <context:property-placeholder location="classpath:foo.properties"/>

但是,如果我尝试在不同的上下文文件中加载另一个文件,则会出错。

【问题讨论】:

  • 你能发布错误/异常吗?

标签: java spring properties


【解决方案1】:

问题 - 如何在 spring config 中使用多个属性文件 *

  1. 在 classPath 中创建单独的 prop 文件 例如。 abc1.properties、abc2.propeties、abc2.properties

  2. 在类路径中创建一个propConfig.xml class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">

    class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">

    类路径:/abc1.properties 类路径:/abc2.properties 类路径:/abc3.properties

  3. 为所有其他 beanDefination.xml 和 propConfig.xml 创建组合文件 AllSpringConfig.xml 3.1 确保以下属性 configure 和 locator beans 只定义在一个
    文件,即 propConfig.xml 3.2 确保 propConfig.xml 在任何其他配置文件之前,如下所示

    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ">

    <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 --> 
    

  4. 使用下面来初始化 bean ApplicationContext 上下文 = new ClassPathXmlApplicationContext("AllSpringConfig.xml");

注意 - 确保所有提到的文件都在类路径中或提供文件所在的正确路径。

【讨论】:

    【解决方案2】:

    如果您需要覆盖属性,您可以这样做:

    <context:property-override location="classpath:override.properties"/>
    

    如果错误是由于没有找到某个属性,您可以将ignoreUnresolvablePlaceholders设置为true。


    如果错误是关于未找到资源(并且您可以接受),您可以将ignoreResourceNotFound 设置为 true。


    如果在查找系统属性时出错:

    PropertyPlaceholderConfigurer 不仅在您指定的属性文件中查找属性。默认情况下,如果在指定的属性文件中找不到属性,它还会检查 Java 系统属性。您可以通过使用以下三个受支持的整数值之一设置配置器的 systemPropertiesMode 属性来自定义此行为:

    从不 (0):从不检查系统属性

    fallback (1):如果在指定的属性文件中无法解析,请检查系统属性。这是默认设置。

    覆盖 (2):首先检查系统属性,然后再尝试指定的属性文件。这允许系统属性覆盖任何其他属性源。

    【讨论】:

      【解决方案3】:

      根据来源,您必须提供以逗号分隔的属性文件资源列表。 这应该适合你:

      <context:property-placeholder location="classpath:foo1.properties,classpath:foo2.properties"/> 
      

      【讨论】:

        猜你喜欢
        • 2012-02-14
        • 2017-08-18
        • 2011-08-02
        • 2019-03-30
        • 2012-06-23
        • 2015-01-16
        • 2021-11-27
        • 1970-01-01
        • 2016-06-18
        相关资源
        最近更新 更多