Dao層:主要是作數據持久層的工做,負責與數據庫進行聯絡的一些任務都封裝在此,DAO層的設計首先是設計DAO的接口,而後就可在模塊中調用此接口來進行數據業務的處理,而不用關心此接口的具體實現類是哪一個類,顯得結構很是清晰,DAO層的數據源配置。前端
dao層代碼示例:數據庫
service層:主要負責業務模塊的邏輯應用設計, Service層的業務實現,具體要調用到已定義的DAO層的接口,封裝Service層的業務邏輯有利於通用的業務邏輯的獨立性和重複利用性,程序顯得很是簡潔。 json
service層代碼示例:後端
dao層和service層關係:service層常常要調用dao層的方法對數據進行增刪改查的操做,現實開發中,對業務的操做會涉及到數據的操做,而對數據操做經常要用到數據庫,因此service層會常常調用dao層的方法。api
擴展資料app
Service層是創建在DAO層之上的,創建了DAO層後才能夠創建Service層,而Service層又是在Controller層之下的,於是Service層應該既調用DAO層的接口,它恰好處於一箇中間層的位置。每一個模型都有一個Service接口,每一個接口分別封裝各自的業務處理方法。spa
在實際開發中DAO層大可能是對某張表進行增刪改查,都是一些固定的語句,除非涉及到更復雜的service層業務邏輯,纔可能要添加更復雜的DAO層方法。設計
Controller層通常都是寫接口提供給前端或者後端其餘服務使用的,通常後端的接口都是寫在 Controller層,Controller層的接口裏面不寫業務邏輯,主要是調用Service層的業務邏輯方法,service層主要是寫業務邏輯方法,service層常常要調用dao層的方法對數據進行增刪改查的操做。3d
下面是Controller層的接口示例:code
@Controller @RequestMapping(value = "/api/platform/exceptioncenter/exceptioninfo") public class ExceptionInfoController { //注入 @Autowired private ExceptionInfoBiz exceptionInfoBiz; /** * 建立異常信息請求 * @param requestBody 請求消息內容 * @param request 請求消息頭 * @return jsonObject */ @RequestMapping( value="/create", method = RequestMethod.POST ) public ModelAndView createExceptionInfo(@RequestBody String requestBody, HttpServletRequest request) { JSONObject jsonObject = JSONObject.fromObject(requestBody); ComExceptionInfo comExceptionInfo = new ComExceptionInfo(); comExceptionInfo.setProjectName(jsonObject.getString("projectName")); comExceptionInfo.setTagName(jsonObject.getString("tagName")); exceptionInfoBiz.insert(comExceptionInfo); //返回請求結果 JSONObject result= new JSONObject(); result.put("success", "true"); return new ModelAndView("", ResponseUtilsHelper.jsonSuccess(result.toString())); } }