工厂
package cn.tedu.factory;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
public class BasicFactory {
private static BasicFactory factory = new BasicFactory();
private static Properties prop = new Properties();
private BasicFactory() {
}
public static BasicFactory getFactory() {
return factory;
}
static {
try {
String path = BasicFactory.class .getClassLoader()
.getResource("conf.properties").getPath();
prop.load(new FileInputStream(new File(path)));
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* 创建各种实例
*/
public <T> T getInstance(Class<T> clazz) {
//UserDao UserService
try {
String className = prop.getProperty(clazz.getSimpleName());
//根据clazz.getSimpleName()接口名,配置文件中获取实现类的全路径名
Class clz = Class.forName(className);
return (T)clz.newInstance();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
}