随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。

首先创建一个接口规范其实现类:

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();
    }
}

输出结果:

 

完成、、、 

posted on 2022-05-04 18:36  时间完全不够用啊  阅读(302)  评论(0编辑  收藏  举报