◆版權聲明:本文出自胖喵~的博客,轉載必須註明出處。html
轉載請註明出處:http://www.javashuo.com/article/p-vrxovyzq-bn.html
前端
繼續上一節,爲了更好的開發,現將各個層獨立,各司其職。git
這裏,一共劃分了四大塊:Controller層、Service層、Dal層和Common。github
Common層 spring
提供一些公用的能力,一個一個看,首先是util:數據庫
BaseQuery 全部Query的父類,裏面的pageSize和pageNum是分頁請求用的,這裏面多寫了getStart的getSize兩個方法是由於在mybatis的請求中,這兩個字段會做爲參數進行查詢的。json
<!-- 分頁查 --> <select id="getPageByQuery" parameterType="com.bryan.demo.common.query.UserQuery" resultMap="userMap"> select <include refid="columns" /> from user <include refid="queryParams" /> order by id <if test="size!=null"> <![CDATA[limit #{start}, #{size}]]> </if> </select>
這裏就是分頁請求的原理,前端在請求的時候,只需帶上pageSize和pageNum兩個參數就能夠了。springboot
Page:分頁請求的結果類,裏面存儲着請求分頁時候的參數,以及全部的數量和當前頁返回的body數據。mybatis
Result:結果類,success表明本次請求是否成功,data定義的是一個模版,因此不一樣的請求結果數據均可以放到這裏。app
Query:各個功能的Query類,須要繼承BaseQuery,而後定義本身功能的字段便可。
Dal層
負責處理數據相關的邏輯。
entity中DO表明數據庫字段類,須要和數據庫中的字段保持一致,它也是Dal層返回的數據類型;
dao下的mapper,定義了一些對數據庫操做的方法,相似於定義接口,真實的實如今resource目錄下的mapper.xml中,這裏用的是mybatis。
Service層
service類:接口,定義對外提供的接口;
serviceImpl類:接口的實現類,Autowire Mapper,而後用mapper對象操做數據庫對象,由於mapper對象處理的是DO對象,而它對外提供和接受的都是BO對象,所以須要helper類
helper類:負責DO對象和BO對象的轉化,
以及請求參數中jsonString的轉化;
BO類:業務的數據對象
Controller層
RequestMapping決定url進入哪一個方法。
Autowire Service後直接調用Service對象,返回結果封裝爲Result結果進行輸出。
畫了一副總體的圖,能夠看下,方便理解:
固然,最好的是看代碼:https://github.com/bryanfeng/springboot-demo/commit/3e788c218ae3c4ffd90a38cb84f4d24ee42d374f