1.dao層操做單表,不涉及複雜邏輯,主要是表的增刪改查操做,徹底根據domain的要求來查詢數據,會對每一個要操做的數據庫表定義一個dao,對具體的操做要定義一個相似函數說明。數據庫
eg: UppCodeInfo findByCodeNo(String codeNo);JPA方式dom
2.domain層考慮業務邏輯,例如過濾條件,放行或者返回,以及數據的處理,爲調用dao層作好準備,一個domain能夠調用一個或者一組相關的dao層.函數
eg:@Entity
@Table(name = "upp_code_info")
public class UppCodeInfo {屬性....對應數據庫表中的字段,要在後面生成set(),get()方法}spa
3.service層調用一個或者一組domain層,主要是展示須要開放出去的接口,其中domain層不是全部的接口都要再service層 體現的,可能僅在service層開放幾個接口出去,此外,主要接口須要對接受的參數要儘可能的擴大化,也就是說能夠容納各類類型的參數的接入 (Object),而後須要在service層作好轉換,以備domain層使用。具體的邏輯實如今此層實現。即函數在該層實現。code
4.controller層,做用在於過濾參數、和部分加解密和簡單的邏輯處理 ,或者對於頁面數據的封裝,你能夠理解爲一個入口而service只須要處理複雜業務。接口
總結:get
底層數據庫(具體數據的存儲)——>dao(實現從表中讀數據)——>domain(講表與實體進行關聯,進行實體的定義,set,get方法的定義)——>service(邏輯的實現,進行數據關聯,方便底層取數據)——>controller(方便爲前段提供數據)。it