SpingBoot三——基礎架構

  ◆版權聲明:本文出自胖喵~的博客,轉載必須註明出處。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

相關文章
相關標籤/搜索