我有一个属性文件,其属性具有List值(逗号分隔),如何在多行中写入此属性?(逗号后面的反斜杠)?
我找不到任何关于这个或者至少是关于用逗号和反斜杠转义逗号的内容.
对于用Java编写的监控软件,我考虑使用Google Guice作为DI提供程序.项目需要从外部资源(文件或数据库)加载其配置.该应用程序旨在以独立模式或servlet容器运行.
目前,配置不包含依赖项注入的绑定或参数,只有一些全局应用程序设置(JDBC连接定义和关联的数据库管理/监视对象).
我看到两个选择:
要么
您是否建议将Guice用于这两项任务,或者将一般应用程序配置与依赖注入分开?您认为哪些优点和缺点最重要?
我正在尝试测试Apache-commons配置库用户指南中有关声明和创建bean的一个非常简单的示例.我几乎逐字地复制了示例中的代码,但是我得到了一个NoClassDefFoundError异常.
这是我正在使用的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) 我有一个主要的conf文件,我使用apache通用配置类加载.我有一个要求,用户可以指定一个conf文件,这些文件中的值将覆盖main conf中的值.
请建议我们如何在apache通用配置类或任何其他开源类中实现这一点.
提前致谢
我想在我的暂存环境中有一个用于生产的logback.xml文件和另一个具有不同参数的文件.我的代码能够在运行时自动知道它是否在生产或运行时.有没有办法在运行时设置logback配置文件?
我的 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
我需要获取.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来完成此操作
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) 我正在使用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) Apache Commons 配置库是否支持从类路径或 JAR 读取属性/配置文件?我没有找到可以接受InputStream由 . 返回的 , 的API getResourceAsStream。
java ×9
maven ×2
xml ×2
dependencies ×1
guice ×1
logback ×1
logging ×1
pom.xml ×1
properties ×1
validation ×1