通过文件夹在 Spring 应用程序中加载多个 属性 文件在 Weblogic 中不起作用

Load Multiple Property file in Spring app by folder not working in Weblogic

我正在尝试使用 Spring PropertyPlaceHolder 加载一组属性,该属性在 Tomcat 和 Weblogic 上都能正常工作。现在我将其更改为加载文件夹中的所有 属性 文件,它在 Tomcat 中运行良好,但不适用于 Weblogic。

你能帮我看看我错在哪里吗?

这是我在 XML

中更改的代码片段
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>file:${environment.config}*.properties
                </value>
            </list>
        </property>
        <property name="ignoreResourceNotFound" value="false" />
    </bean>

对于 Weblogic,它无法找到密钥,因此无法加载应用程序。

Using 
      Spring 4.1.5
      Tomcat 8
      Weblogic : 10.3.6

我也尝试添加 org.springframework.beans.factory.config。* 在 weblogic.xml,但没有帮助。

我使用 applicationcontext.xml 中的 *.properties 自定义了 属性 个文件的加载。我扩展了 "PropertiesFactoryBean" 并初始化了 class 并从下面的文件夹中读取了所有属性

public static List<Properties>  loadAllProperties() {
        File[] files = new File(System.getProperty("environment.config")).listFiles();
        List<Properties>  lstOfProperties = new ArrayList<>();
        if (files != null) {
            for (File file : files) {
                if (file.isFile()) {
                    String filename = file.getName();
                    String extension = filename.substring(filename.lastIndexOf(".") + 1, filename.length());

                    if (("properties").equals(extension)) {
                        Properties props = new Properties();
                        try {
                            props.load(new FileReader(file));
                        } catch (IOException e) {
                            LOGGER.error("Loading Properties " , e);
                        }
                         lstOfProperties.add(props);
                    }
                }
            }
        }
        return lstOfProperties;
    } 

然后使用 PropertiesFactoryBean 的两个方法 "setPropertiesArray" 和 "mergeProperties",我在加载时将所有必需的属性添加到系统。

可能还有更好的选择,但这对我有用,可能对其他人有帮助。