当前位置: 首页 > news >正文

利用工厂模式实现Dao层和Service的解耦

dao.properties的文件内容

UpfileDao=cn.itcast.dao.impl.UpfileDaoImpl

DaoFactory的实现

public class DaoFactory {

    private static Properties daoconfig = new Properties();
    static{
        try {
            daoconfig.load(DaoFactory.class.getClassLoader().getResourceAsStream("dao.properties"));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
    private DaoFactory(){}
    private static final DaoFactory instance = new DaoFactory();
    public static DaoFactory getInstance(){
        return instance;
    }
    
    public <T> T createDao(Class<T> interfaceClass){
        String name = interfaceClass.getSimpleName();
        String daoClassname = daoconfig.getProperty(name);
        try {
            return (T) Class.forName(daoClassname).newInstance();
        } catch (Exception e) {
            throw new RuntimeException(e);
        } 
    }
    
}

BusinessServiceImpl利用DaoFactory进行解耦

private UpfileDao dao = DaoFactory.getInstance().createDao(UpfileDao.class);

 

转载于:https://www.cnblogs.com/zhangbaowei/p/4731093.html

相关文章:

  • [LeetCode]Multiply Strings
  • 11g rac配置scan ip
  • jQuery属性,方法操作
  • 深入理解Linux内核-信号
  • 1.1JVM
  • 十进制转二进制
  • Android 工作随记
  • CRB and String
  • CoCoaPods
  • Nova 操作汇总(限 libvirt 虚机) [Nova Operations Summary]
  • Hexo 个人博客搭建
  • 2.4-Apache访问控制
  • Excel文档上传
  • kvm 安装 centos7 文本模式 分辨率 太高修改
  • Android中Activity和Fragment与Fragment和Fragment之前互相传值方法
  • JavaScript-如何实现克隆(clone)函数
  • Angular6错误 Service: No provider for Renderer2
  • CAP 一致性协议及应用解析
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Fundebug计费标准解释:事件数是如何定义的?
  • HTTP请求重发
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • PermissionScope Swift4 兼容问题
  • Promise面试题2实现异步串行执行
  • Vim Clutch | 面向脚踏板编程……
  • Web设计流程优化:网页效果图设计新思路
  • 给github项目添加CI badge
  • 前嗅ForeSpider采集配置界面介绍
  • 一个完整Java Web项目背后的密码
  • 用简单代码看卷积组块发展
  • 云大使推广中的常见热门问题
  • 正则表达式小结
  • 字符串匹配基础上
  • puppet连载22:define用法
  • ​Java并发新构件之Exchanger
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • !!java web学习笔记(一到五)
  • (¥1011)-(一千零一拾一元整)输出
  • (9)目标检测_SSD的原理
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (done) 两个矩阵 “相似” 是什么意思?
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (二)JAVA使用POI操作excel
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (四) 虚拟摄像头vivi体验
  • (算法)前K大的和
  • (一)VirtualBox安装增强功能
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)Linux下编译安装log4cxx
  • .bat批处理(六):替换字符串中匹配的子串