1

ConfigurationException使用 Apache Commons Configurations 1.9,如果找不到提供的文件,如何避免加载配置文件?

Spring 应用上下文类似于:

<bean name="foo.config" class="org.apache.commons.configuration.PropertiesConfiguration" init-method="load">
    <property name="fileName" value="foo.properties" />
</bean>

但是我的配置文件是可选的,所以我想确保应用程序正确启动,即使文件不存在。

如何使用 Commons Configurations 实现这一目标?AFactoryBean有效,但还有其他方法吗?

4

1 回答 1

3
if (!file.exists()) return new PropertiesConfiguration();

或者使用 XML 配置使用 try/catch 语法:

import org.apache.commons.configuration2.XMLConfiguration;
import org.apache.commons.configuration2.builder.fluent.Configurations;

public class Workspace {

  private final XMLConfiguration mConfig;

  public Workspace() {
    final var configs = new Configurations();
    XMLConfiguration config;
  
    try {
      config = configs.xml( "filename.xml" );
    } catch( final Exception e ) {
      config = new XMLConfiguration();
    }
  
    mConfig = config;
  }

使用常规属性配置将以相同的方式工作。

于 2017-02-06T17:46:05.587 回答