黑马程序员技术交流社区
标题:
java 如何通过配置文件加载类?
[打印本页]
作者:
王勇文
时间:
2013-2-23 19:28
标题:
java 如何通过配置文件加载类?
java程序中 是如何实现 通过配置文件加载类的呢?
原理是是什么? 以及求代码解释。
作者:
洪建超
时间:
2013-2-23 19:40
创建一个自己的类SystemProperties ,类中有以下属性:
private static SystemProperties ref; // 为了能创建单例模式
private java.util.Properties prop = null;
private SystemProperties() throws IOException {
prop = new java.util.Properties(); //创建一个Properties 类的引用
prop.load(SystemProperties.class.getResourceAsStream("/jbilling.properties")); //加载配置文件
}
获取配置文件:String retValue = prop.getProperty(key);// key为配置文件中的名称,配置文件如:key=value
java.util.Properties中常用的方法有:
getProperties(String key)
getProperties(String key, String defaultValue)
load(InputStream inStream)
loadFromXML(InputStream inStream)
setProperties(String key, String value)
作者:
李挺
时间:
2013-2-23 19:41
本帖最后由 李挺 于 2013-2-23 19:43 编辑
这个文件得写成key=value的形式
value是类名称
用Properties 的load方法加载这个文件的字节流
使用get
Property
(key)的方法取得名称,然后就可以通过反射加载了
作者:
吴硕
时间:
2013-2-23 20:08
import java.io.FileInputStream;
import java.util.Properties;
/**
配置文件形式如下:
date=java.util.Date
*/
class ReflectTest
{
public static void main(String[] args) throws Exception
{
FileInputStream fis = new FileInputStream("config.txt");
Properties pro = new Properties();
pro.load(fis);
//遍历key组成的Set集合
for(String key : pro.stringPropertyNames())
{
System.out.println(createObject(pro.getProperty(key)));
}
}
//传入全限定类名,创建实例
private static Object createObject(String clazzName) throws Exception
{
//获取字节码
Class<?> clazz = Class.forName(clazzName);
//使用无参构造函数创建实例
return clazz.newInstance();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2