package com.itheima.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class DaoFactory {
Properties pro = new Properties();
private static DaoFactory instance = new DaoFactory();
private DaoFactory(){
InputStream is = DaoFactory.class.getClassLoader().getResourceAsStream("dao.properties");
try {
pro.load(is);
} catch (IOException e) {
throw new ExceptionInInitializerError(e);
}
}
public static DaoFactory getInstance() {
return instance;
}
public <T> T createDao(Class<T> clazz){
String name = pro.getProperty(clazz.getSimpleName());
if(name==null) {
throw new RuntimeException("找不到与" + name +"匹配的类");
}
try {
return (T)Class.forName(name).newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
配置文件一般是这样:
CustomerDao=com.itheima.dao.impl.CustomerDaoImpl
CustomerStatusDao=com.itheima.dao.impl.CustomerStatusDaoImpl
InfoSourceDao=com.itheima.dao.impl.InfoSourceDaoImpl