一、Properties文件
Java中配置文件最简单、依赖最少的莫过于Properties文件。通过java.util包的Properties类实现配置读取,配置文件以key=value形式存储配置,读取时key为String类型,返回的value也是String类型。下面举例说明如下使用Properties类读取配置文件。
1、配置文件
#vi config.properties
Hello=World
2、实例代码
#vi Conf4Prop.java
import java.io.IOException;
import java.util.Properties;
public class Conf4Prop {
private static Properties p = null;
private static Conf4Prop conf4prop = null;
public static Conf4Prop getInstance()
{
if (null == conf4prop)
{
conf4prop = new Conf4Prop();
}
return conf4prop;
}
public boolean LoadConf(String strLogConfPath)
{
try {
if (null == p) {
p = new Properties();
}
p.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(strLogConfPath));
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
public String GetConf(String strKey)
{
return p.getProperty(strKey);
}
public static void main(String[] args) {
Conf4Prop.getInstance().LoadConf(args[0]);
String key = "Hello";
String value = Conf4Prop.getInstance().GetConf(key);
System.out.println("Hello="+value);
}
}
3、输出结果
#javac -d ./ Conf4Prop.java
#java Conf4Prop config.properties
Hello=World
二、XML文件
如果配置非简单的key=value能描述,而需要复杂的层次结构才能描述的话,XML文件将是您的首先。
1、配置文件
#vi config.xml
http_server
192.168.1.1
8080
Address>
2、实例代码
#vi Conf4Xml.java
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();
}
}
}
三、混合文件
Java中可以混合Properties和XML配置文件来满足更加复杂的应用配置需求。比如:假设有3个配置文件,分别是global.properties、local.properties、user.properties,其中,user优先于local,local优先于global,那么用以下这3个Properties逻辑配置文件和1个XML引用配置文件就可实现复合配置。
1、引用配置文件
cofigs.xml内容如下:
2、逻辑配置文件
(1)global.properties内容如下:
name=Default User
age=0
speed=10
(2)local.properties内容如下:
name=kiyho
age=20
(3)user.properties内容如下:
age=100
3、实例代码
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();
}
}
}
阅读(5974) | 评论(1) | 转发(2) |