标签: apache-commons-config

如何使用PropertiesConfiguration写多行属性值?

我有一个属性文件,其属性具有List值(逗号分隔),如何在多行中写入此属性?(逗号后面的反斜杠)?

我找不到任何关于这个或者至少是关于用逗号和反斜杠转义逗号的内容.

java properties apache-commons-config

85
推荐指数
3
解决办法
7万
查看次数

Guice和一般应用程序配置

对于用Java编写的监控软件,我考虑使用Google Guice作为DI提供程序.项目需要从外部资源(文件或数据库)加载其配置.该应用程序旨在以独立模式或servlet容器运行.

目前,配置不包含依赖项注入的绑定或参数,只有一些全局应用程序设置(JDBC连接定义和关联的数据库管理/监视对象).

我看到两个选择:

要么

  • 使用Guice -xml-config之类的Guice基于文件的插件来存储应用程序选项(如果有必要,这将允许稍后配置DI部分).

您是否建议将Guice用于这两项任务,或者将一般应用程序配置与依赖注入分开?您认为哪些优点和缺点最重要?

java configuration guice apache-commons-config

20
推荐指数
2
解决办法
2万
查看次数

非常简单的Apache-commons配置示例抛出NoClassDefFoundError

我正在尝试测试Apache-commons配置库用户指南中有关声明和创建bean的一个非常简单的示例.我几乎逐字地复制了示例中的代码,但是我得到了一个N​​oClassDefFoundError异常.

这是我正在使用的xml文件 - windowcongif.xml:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<config>
  <gui>
    <windowManager config-class="test.DefaultWindowManager"
      closable="false" resizable="true" defaultWidth="400"
      defaultHeight="250">      
    </windowManager>
  </gui>
</config>
Run Code Online (Sandbox Code Playgroud)

这是文件中的代码WindowManager.java:

package test;
public interface WindowManager {}
Run Code Online (Sandbox Code Playgroud)

这是文件中的代码DefaultWindowManager.java:

package test;
public class DefaultWindowManager  implements WindowManager {
    private boolean resizable;
    private boolean closable;
    private int defaultWidth;
    private int defaultHeight;
}
Run Code Online (Sandbox Code Playgroud)

这是文件中的代码Main.java:

package test;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.beanutils.BeanDeclaration;
import org.apache.commons.configuration.beanutils.BeanHelper;
import org.apache.commons.configuration.beanutils.XMLBeanDeclaration;

public class Main {
    public static void main(String[] args) throws …
Run Code Online (Sandbox Code Playgroud)

java xml apache-commons-config

19
推荐指数
2
解决办法
2万
查看次数

如何使用apache通用配置加载多个配置文件(java)

我有一个主要的conf文件,我使用apache通用配置类加载.我有一个要求,用户可以指定一个conf文件,这些文件中的值将覆盖main conf中的值.

请建议我们如何在apache通用配置类或任何其他开源类中实现这一点.

提前致谢

java xml apache-commons apache-commons-config

14
推荐指数
1
解决办法
4464
查看次数

如何在运行时设置logback配置文件?

我想在我的暂存环境中有一个用于生产的logback.xml文件和另一个具有不同参数的文件.我的代码能够在运行时自动知道它是否在生产或运行时.有没有办法在运行时设置logback配置文件?

java logging logback apache-commons-config

10
推荐指数
1
解决办法
6620
查看次数

Apache 公共配置:ClassNotFoundException:org.apache.commons.beanutils.DynaBean

我的 POM 包含:

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-configuration2</artifactId>
        <version>2.3</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

快速入门指南读取属性文件中的两个示例代码:

Configurations configs = new Configurations();
try
{
    Configuration config = configs.properties(new File("config.properties"));
    // access configuration properties
    ...
}
catch (ConfigurationException cex)
{
    // Something went wrong
}
Run Code Online (Sandbox Code Playgroud)

属性文件,使用 PropertiesConfiguration

Parameters params = new Parameters();
FileBasedConfigurationBuilder<FileBasedConfiguration> builder =
    new FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
    .configure(params.properties()
        .setFileName("usergui.properties"));
try
{
    Configuration config = builder.getConfiguration();
    ...
}
catch(ConfigurationException cex)
{
    // loading of the configuration file failed
}
Run Code Online (Sandbox Code Playgroud)

抛出:

java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean
...
at org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:307)
at org.apache.commons.configuration2.builder.fluent.Parameters.fileBased(Parameters.java:186) …
Run Code Online (Sandbox Code Playgroud)

dependencies pom.xml maven apache-commons-config transitive-dependency

9
推荐指数
1
解决办法
5168
查看次数

如何使用apache.commons获取属性列表

我需要获取.properties文件中的属性列表.例如,如果有以下.properties文件:

users.admin.keywords = admin
users.admin.regexps = test-5,test-7
users.admin.rules = users.admin.keywords,users.admin.regexps

users.root.keywords = newKeyWordq
users.root.regexps = asdasd,\u0432[\u044By][\u0448s]\u043B\u0438\u0442[\u0435e]
users.root.rules = users.root.keywords,users.root.regexps,rules.creditcards

users.guest.keywords = guest
users.guest.regexps = *
users.guest.rules = users.guest.keywords,users.guest.regexps,rules.creditcards

rules.cc.creditcards = 1234123412341234,11231123123123123,ca
rules.common.regexps = pas
rules.common.keywords = asd
Run Code Online (Sandbox Code Playgroud)

因此,我想得到一个ArrayList,它包含如下字段的名称: users.admin.keywords, users.admin.regexps, users.admin.rules依此类推.正如您所注意到的,我需要使用apache.commons.config来完成此操作

java apache-commons-config

8
推荐指数
2
解决办法
2万
查看次数

为什么Maven没有解析commons-configuration的所有依赖项?

摘要

XMLConfiguration configuration = new XMLConfiguration("config/config.xml");仅在尝试时commons-configuration 1.10我需要为我的maven设置添加更多依赖项(即commons-collections不比新项目更新3.2.1).为什么会这样,为什么maven不能简单地解决所有需要的依赖?

细节

我试图让commons-configuration工作.首先,我想使用最新版本2.0-alpha2,因为我无法配置Maven来下载正确的资源,所以它完全不能正常工作 - 但这是另一回事.

在我发现版本1.10实际上是"一点十"(而不是"一点一零")并且因此是最新版本的commons-configuration 1(并且由教程覆盖)之后,我决定试一试.

对于我的maven依赖项(集成在eclipse中)我用过:

<dependency>
    <groupId>commons-configuration</groupId>
    <artifactId>commons-configuration</artifactId>
    <version>1.10</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

但是,在尝试这个例子时:

package main;

import java.util.Iterator;

import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.XMLConfiguration;

public class ConfigurationTest {
    public static void main(String... args) {
        try {
            XMLConfiguration configuration = 
                    new XMLConfiguration("config/config.xml");
            Iterator<String> iterator = configuration.getKeys();
            while (iterator.hasNext()) {
                System.out.println(iterator.next());
            }
        } catch (ConfigurationException e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用以下config.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<configuration>
  <property>value</property> …
Run Code Online (Sandbox Code Playgroud)

java maven apache-commons-config

7
推荐指数
1
解决办法
9825
查看次数

Apache Commons 配置验证属性文件

我正在使用Apache Commons Configuration库与PropertiesConfiguration. 我的应用程序在启动后立即加载配置文件,如下所示:

public PropertiesConfiguration loadConfigFile(File configFile) throws ConfigurationNotFoundException {
        try {
            if (configFile != null && configFile.exists()) {
                config.load(configFile);
                config.setListDelimiter(';');
                config.setAutoSave(true);
                config.setReloadingStrategy(new FileChangedReloadingStrategy());
                setConfigLoaded(true);
            }
            else {
                throw new ConfigurationNotFoundException("Configuration file not found.");
            }

        } catch (ConfigurationException e) {
            logger.warn(e.getMessage());
            setDefaultConfigValues(config);
            config.setFile(configFile);
        }
        return config;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何验证configFile,以便我可以确定该文件中没有丢失任何属性,并且稍后在我的代码中NullPointerException尝试访问属性时我不会得到 a ,例如:

PropertiesConfiguration config = loadConfig(configFile);
String rootDir = config.getString("paths.download"); // I want to be sure that this property exists right at the …
Run Code Online (Sandbox Code Playgroud)

java validation properties-file apache-commons-config

6
推荐指数
1
解决办法
1720
查看次数

Apache Commons 配置:从类路径/JAR 读取?

Apache Commons 配置库是否支持从类路径或 JAR 读取属性/配置文件?我没有找到可以接受InputStream由 . 返回的 , 的API getResourceAsStream

java configuration-files apache-commons-config

6
推荐指数
1
解决办法
786
查看次数