1. 程式人生 > >利用配置檔案,在工廠中建立一個實現類物件

利用配置檔案,在工廠中建立一個實現類物件

package cn.itcast.usermng.dao;

import java.io.InputStream;
import java.util.Properties;

/**
 * 通過配置檔案得到dao實現類的名稱!
 * 通過類名稱,完成建立類物件!(反射完成的!)
 * @author cxf
 *
 */
public class DaoFactory {
    private static Properties props = null;
    static {
        // 載入配置檔案內容到props物件中
        try {
            InputStream in = DaoFactory.class
                    .getClassLoader().getResourceAsStream("dao.properties");
            props = new Properties();
            props.load(in);
        } catch(Exception e) {
            throw new RuntimeException(e);
        }
    }
    /**
     * 返回一個具體UserDao的實現類物件
     * @return
     */
    public static UserDao getUserDao() {
        /**
         * 給出一個配置檔案,檔案中給出UserDao介面的實現類名稱!
         * 我們這個方法,獲取實現類的類名,通過反射完成建立物件!
         */
        /*
         * 得到dao實現類的名稱
         */
        String daoClassName = props.getProperty("cn.itcast.usermng.dao.UserDao");
        
        /*
         * 通過反射來建立實現類的物件 
         */
        try {
            Class clazz = Class.forName(daoClassName);
            return (UserDao)clazz.newInstance();
        } catch(Exception e) {
            throw new RuntimeException(e);
        }
    }
}

總結一句話:

通過類載入器,讀取配置檔案,獲得實現類的地址

繼續通過類載入器,載入從配置檔案中讀取到的類地址,建立該類物件,並返回