A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima.exam.factory;

import java.io.FileInputStream;
import java.util.Properties;

import com.itheima.exam.dao.StudentDao;

public class DaoFactory {

        private String studentDaoClassName;
        //工厂
        //单例
        private DaoFactory(){
                try {
                        //读取配置文件   获取实现类的类名
                        Properties props = new Properties();
                        props.load(new FileInputStream("src/dao.properties"));
                 this.studentDaoClassName = props.getProperty("studentDao");
                } catch (Exception e) {
                        // TODO: handle exception
                        throw new ExceptionInInitializerError();
                }
        }
    private static DaoFactory factory=new DaoFactory();
    public static DaoFactory getInstance(){
            return factory;
    }
    //生产dao
    public StudentDao newstuStudentDao(){
            try {
                        return  (StudentDao) Class.forName(this.studentDaoClassName).newInstance();
                } catch (Exception e) {
                   throw new FactoryException(e);
                }
               
    }
}


评分

参与人数 1技术分 +1 收起 理由
邵天强 + 1 神马都是浮云

查看全部评分

3 个回复

倒序浏览
上面的代码需要有改进的地方,读取配置文件时,最好用类加载器取出,你上面的代码 props.load(new FileInputStream("src/dao.properties"));
发布到tomcat中就没有“src/dao.properties”这个路径,会出错,
String filename=DaoFactory.class.getClassLoader().getResource("properties").getPath();
props.load(new FileInputStream(filename));效果是比较好一点,如果一个配置文件在类路径下面,最好
用类加载器去读取文件,小建议,欢迎指正
回复 使用道具 举报
tfy 中级黑马 2012-12-18 21:04:11
藤椅
欢迎交流哦 向你学习啊
回复 使用道具 举报
学习~{:soso_e160:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马