首先创建一个接口规范其实现类:
package JDBC;
public interface IUserDao {
public void login();
public void check();
}
然后创建类实现这个接口:
package JDBC;
public class UserDaoImpl implements IUserDao {
@Override
public void login() {
System.out.println("loading......");
}
@Override
public void check() {
System.out.println("检测中......");
}
}
创建文件记录实现类的信息:
daoClassName = JDBC.UserDaoImpl
创建工厂类进行文件读取和反射处理:
package JDBC;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.util.Properties;
public class DaoFactor {
private static Properties props = null;
static {
try {
// 读取文件资源到props对象中
InputStream in = DaoFactor.class.getClassLoader().getResourceAsStream("msg/className.dao");
props = new Properties();
props.load(in);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static UserDaoImpl getUserDaoImpl() {
// 获取类名
String className = props.getProperty("daoClassName");
try {
// 返回实例化对象
return (JDBC.UserDaoImpl) Class.forName(className).getDeclaredConstructor().newInstance();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
最后创建测试类:
package JDBC;
public class Test {
public static void main(String[] args) {
UserDaoImpl udp = DaoFactor.getUserDaoImpl();
udp.login();
udp.check();
}
}
输出结果:
完成、、、