zoukankan      html  css  js  c++  java
  • Spring-mybatis没有了XXXmapper.java和Dao的实现类还有Service的实现类

      对于刚学过框架的同学可能知道,mybatis有两种主要的配置文件:

      SqlMapConfig.xml(mybatis全局配置文件,名称不固定,用来配置运行环境(数据源、事务)

      XXXmapper.xml 主要用来配置sql语句

    我以前做过一个项目,大概的层次结构如下:

    从这个UML图中可以看出这个项目有和xml同名的接口,还有Dao层的实现类;

    然而最近实习的时候,带我们的导师给了一个项目,这个项目里面竟然没有mapper代理层和Dao的实现层

     

    从图中可以看出,向这种项目减少了XXXmapper.java和Dao层还有Service层的实现类。所以可以减少很多不必要的代码。

    使得代码结构很清爽。


    那么可能有的人会有跟我一样的疑问了,此时大家应该去看我的上一篇关于mybatis入门的教程

    mybatis入门介绍二

    里面讲到了XXXmap.xml文件中的最上面namespace的作用,按照第一种mapper代理的方式,namespace里面应该填写的是和XXXmapper.xml同名的XXXmapper.java接口的全限定名。

    而没有了mapper代理层之后,namespace填写的内容就是Dao层接口的权限定名了。也就是说,现在Dao接口充当了Mapper接口。Dao接口中的方法,对应着配置文件中的Sql的id。

    这样就省去了mapper接口这一层无脑的代码。

    同样的道理,Dao层的实现类里面也是无脑的代码,就是调用mapper接口里面的方法。同理,Service层的实现类XXXServiceImpl.java里面也是调用Dao接口的方法,别的一点事情都没做,知识调用方法。所以同样可以省略掉。

    这就解决了我的很多疑问。也就慢慢的理解了,什么是面向接口编程了。

  • 相关阅读:
    WeTagger不封号的微信客服工具(一)——预告
    WeSender不封号的微信群发软件(六)——升级:第六版已经完成
    .net core系列(一)
    .net core系列整理收藏
    Ansible Windows模块学习
    Windows配置Ansible Host
    Alembic管理Sqlite3数据库版本
    高端VIPRION实物图
    Calendar 类 set() 方法使用要点
    Java 日期处理工具类
  • 原文地址:https://www.cnblogs.com/ilovessf/p/7272262.html
Copyright © 2011-2022 走看看