zoukankan      html  css  js  c++  java
  • spring 利用工厂模式解耦

    前期工作

      我们建立三层架构:表现层,业务层和持久层

       持久层通过dao接口完成对数据库的交互

       通过实现类完成功能的实现

      业务层通过service接口完成业务需求

       业务层实现类

      表现层调用service接口

       我们可以看到业务层对持久层,表现层对业务层有着依赖

    利用工厂模式解耦

      我们创建一个Bean工厂,Bean在计算机英语里有可重用组件的意思,bean工厂就是创建dao和service对象的工厂

       配置文件可以是xml,也可以是properties,这里我们采用properties,我们在resources里创建properties配置

       然后我们在bean工厂里面初始化properties,这里我们使用静态代码块

       需要注意的是InputSteam的实例化不能用new关键字,因为web服务上线后就没有src文件夹了,也不能用绝对路径,因为每台机子都不一样。这里采用的是利用bean工厂的类加载器的getResourceAsStream方法获取流对象,里面的路径是从classpath开始的。

       然后我们来写getBean方法,该方法可以通过bean的名称获取bean对象,这里根据beanName和properties的key-value配置获取beanPath也就是全限定类名,再通过class.forName反射的机制获取bean对象。

       建立好工厂之后,我们就可以利用工厂解耦,我们来看表现层对accountService的依赖,我们就可以利用工厂生产IAccountServiceImpl类的实现类AccountServiceImpl

       同样的,业务层对持久层的依赖也可以通过工厂模式解耦

       我们运行一下,奈斯~

       

     

  • 相关阅读:
    jquery实现瀑布文字
    文本域、bootstrap-table显示以及MySQL三者间的换行符问题
    Mybatis框架的搭建和基本使用方法
    解决ajax多次绑定问题
    浅析JSONP与CROS技术解决跨域问题
    使用Ajax+nodejs实现页面头像上传功能
    自写滚屏组件
    express框架的ejs模板引擎渲染html页面
    自写轮播组件
    mousewheel事件细节
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/13683455.html
Copyright © 2011-2022 走看看