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接口的方法,別的一點事情都沒做,知識調用方法。所以同樣可以省略掉。

這就解決了我的很多疑問。也就慢慢的理解了,什么是面向接口編程了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM