`
xubindehao
  • 浏览: 244679 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java配置文件

阅读更多


(2010-03-04 20:53:29)
标签:

name

可以通过Commons Configuration访问存储于属性文件和XML文档中的配置信息, 依赖的包还有Commons Language, Commons Collections和Commons Logging.

1. 通过属性文件配置应用程序

属性文件作为配置文件, 读取简单, 但配置内容不灵活.

例如有配置文件config.properties如下:

no=237
names=kiyho,sinkiang
correct=false

可以用以下代码读取:

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;

public class PropertiesConfigDemo {
public static void main(String[] args) {
try {
Configuration config = new PropertiesConfiguration(
"config.properties");
System.out.println("score: " + config.getFloat("score"));
System.out.println("names: " + config.getList("names"));
System.out.println("correct: " + config.getBoolean("correct"));
} catch (ConfigurationException e) {
e.printStackTrace();
}
}
}

感觉挺不爽, 用个configuration, 还要依赖其他3个commons包.

另外可以通过util包的Properties类实现配置读取, 只是读取到的都是String类型, 需要自己转换.

import java.io.IOException;
import java.util.Properties;

public class PropertiesDemo {
public static void main(String[] args) {
try {
Properties properties = new Properties();
properties.load(Thread.currentThread().getContextClassLoader()
.getResourceAsStream("config.properties"));
System.out.println("score: " + properties.getProperty("score"));
System.out.println("names: " + properties.getProperty("names"));
System.out.println("correct: " + properties.getProperty("correct"));
} catch (IOException e) {
e.printStackTrace();
}
}
}

2. 通过XML配置应用程序

假设有如下xml配置文件config.xml:

<?xml version="1.0" encoding="utf-8" ?>
<config>
<name>kiyho</name>
<name>sinkiang</name>
<info>
<age>100</age>
</info>
</conifig>

可以用以下代码访问:

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

public class XmlConfigDemo {
public static void main(String[] args) {
try {
XMLConfiguration config = new XMLConfiguration("config.xml");
System.out.println(config.getList("name"));
System.out.println(config.getInt("info.age"));
} catch (ConfigurationException e) {
e.printStackTrace();
}
}
}

XML配置文件读取除了用Configuation外, 还可以用JDOM读取:

import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class JdomXmlConfigDemo {
public static void main(String[] args) {
ClassLoader classLoader = Thread.currentThread()
.getContextClassLoader();
try {
Document document = new SAXBuilder().build(classLoader
.getResourceAsStream("config.xml"));
List<Element> names = document.getRootElement().getChildren("name");
String age = document.getRootElement().getChild("info").getChild(
"age").getTextTrim();
for (Element name : names)
System.out.println("name: " + name.getTextTrim());
System.out.println("age: " + age);
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

不依赖任何Commons包, 只要到jdom包, 不过读取到的都是String, 需要自己转换.

3. 复合配置

多个配置文件, 假设有3个配置文件: global.properties, local.properties, user.properties, 其中user优先于local, local优先于global. 那么用以下这3个配置文件和1个引用配置文件可实现复合配置.

cofigs.xml内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<properties fileName="user.properties" />
<properties fileName="local.properties" />
<properties fileName="global.properties" />
</configuration>

global.properties内容如下:

name=Default User
age=0
speed=10

local.properties内容如下:

name=kiyho
age=20

user.properties内容如下:

age=100

程序读取如下:

import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.ConfigurationFactory;

public class ConfigsDemo {
public static void main(String[] args) {
ConfigurationFactory factory = new ConfigurationFactory();
factory.setConfigurationFileName("configs.xml");

try {
Configuration config = factory.getConfiguration();

System.out.println("name: " + config.getString("name"));
System.out.println("age: " + config.getInt("age"));
System.out.println("speed: " + config.getFloat("speed"));
} catch (ConfigurationException e) {
e.printStackTrace();
}
}
}

分享到:
评论

相关推荐

    java配置文件 beta v3.0

    Java配置文件在软件开发中扮演着至关重要的角色,它们提供了灵活的方式来管理应用程序的参数和设置,使得无需重新编译代码就能调整程序的行为。"java配置文件 beta v3.0" 提供了对多种常见格式的支持,包括XML、ini...

    java配置文件 beta v1.0

    Java配置文件在软件开发中扮演着至关重要的角色,它们存储应用程序的设置、环境变量和配置选项,便于管理和调整应用的行为。"Java配置文件 beta v1.0" 是一个专为处理各种格式配置文件的工具,它能够读写ini、conf、...

    java读取配置文件

    在Java编程中,读取配置文件是常见的任务,特别是在开发需要灵活配置的系统时。配置文件通常用于存储应用程序的设置,如数据库连接信息、服务器端口、第三方服务的API密钥等,这些信息可能需要根据不同的环境或需求...

    ProperityUtils.java配置文件的读写

    ProperityUtils.java配置文件的读写

    JAVA配置文件编写说明文档

    JAVA配置文件编写说明文档

    jdk11,java配置文件

    jdk11,java配置文件

    java配置文件 beta v2.0

    java配置文件助手能方便的读写任何格式(ini,txt,properties)的配置文件,并支持自定义标签,语法,是java学习者的理想选择,如需源代码,请联系我,mak0000@msn.com 280759843 whsvc

    详解java配置文件的路径问题

    "详解java配置文件的路径问题" Java 配置文件的路径问题是 Java 开发中一个常见的问题,对于配置文件的路径问题的处理直接影响着程序的可维护性和可移植性。在本文中,我们将详细介绍 Java 配置文件的路径问题,并...

    java读取配置文件源代码

    在Java编程中,读取配置文件是常见的任务,它允许我们分离程序的配置信息,如数据库连接字符串、API密钥或其他动态可变的设置,从而提高代码的可维护性和灵活性。这里,我们关注的是如何使用Java来读取配置文件,这...

    mysql+Java配置文件

    这是一个对于初学者有很大的作用,详细的介绍了MySQL的驱动加载。

    java 动态修改配置文件

    在Java开发中,配置文件是应用中不可或缺的一部分,它们通常包含系统设置、数据库连接信息、应用参数等。本文将深入探讨如何在Java中实现动态修改配置文件,同时解决中文字符编码问题,使得配置文件的读写更加高效和...

    java 一键读取yaml、propertites配置文件内容,转换为一级map

    纯java底层读取配置文件,生成map,可以根据key模糊匹配查询,封装好了方法。比如getVal("spring.dubbo*url")

    java中的@Value获取不到配置文件的值,也加载不到默认值

    自己开发一个工具类,为第三方应用提供调用接口,但是打包后测试过程中,发现了一个问题就是在用@Value获取配置文件内容的时候,无法获取我们的配置信息,也无法加载我们配置的默认值!具体配置如下: @Value("${...

    Java配置文件自动加载、保存工具类

    实现了实体类和配置文件的关系映射、自动加载、自动保存,基于ORM、持久化的思想,使用Java的注解、反射、范型等特性实现。 依赖jtk_util_0.1.jar,地址:http://download.csdn.net/detail/u010475284/7221887

    java的配置文件

    一个java端的配置文件

    代码规范、命名、配置文件、Code+Review建议各类规范大全

    java、svn、mysql、dubbr、venus-common-monitor、venus-restful、公共码、日志、代码规范、命名、配置文件、Code+Review建议、postman等等等等;各类规范文档

    vim 配置文件 vim 配置文件 vim 配置文件

    vim配置文件 vimrc vim配置文件 vimrc vim配置文件 vimrc

    根据配置文件自动构造Bean类

    自动构造Java的Bean类,暂时仅支持定义包名、类名、带参构造方法、成员变量及其对应的get和set方法,同eclipse里面该项功能,不过本项目是通过配置文件实现,可以根据自己的需要进行拓展,平时用起来省时省力。

    java日志 配置文件

    java日志 配置文件 包含配置文件各个参数的定义及参数含义

Global site tag (gtag.js) - Google Analytics