中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Action、Service 與Dao 三者的作用各有哪些

發布時間:2020-11-27 16:23:18 來源:億速云 閱讀:237 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關Action、Service 與Dao 三者的作用各有哪些,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

1. Action/Service/DAO簡介:

Action是管理業務(Service)調度和管理跳轉的。

Service是管理具體的功能的。

Action只負責管理,而Service負責實施。

DAO只完成增刪改查,雖然可以1-n,n-n,1-1關聯,模糊、動態、子查詢都可以。但是無論多么復雜的查詢,dao只是封裝增刪改查。至于增刪查改如何去實現一個功能,dao是不管的。

總結這三者,通過例子來解釋:

Action像是服務員,顧客點什么菜,菜上給幾號桌,都是ta的職責;

Service是廚師,action送來的菜單上的菜全是ta做的;

Dao是廚房的小工,和原材料打交道的事情全是ta管。

相互關系是,小工(dao)的工作是要滿足廚師(service)的要求,廚師要滿足服務員(action)轉達的客戶(頁面用戶)的要求,服務員自然就是為客戶服務嘍。

現在最基本的分層方式,結合了SSH架構。Model層就是對應的數據庫表的實體類。Dao層是使用了Hibernate連接數據庫、操作數據庫(增刪改查)。Service層:引用對應的Dao數據庫操作。Action層:引用對應的Service層,在這里結合Struts的配置文件,跳轉到指定的頁面,當然也能接受頁面傳遞的請求數據,也可以做些計算處理。

以上的Hibernate, Struts,都需要注入到Spring的配置文件中,Spring把這些聯系起來,成為一個整體。

2. 三大框架Struts/Hibernate/Spring

簡單地說:

Struts——控制用的;

Hibernate——操作數據庫的;

Spring——解耦用的。

詳細地說:

Struts在SSH框架中起控制的作用,其核心是Controller,即ActionServlet,而ActionServlet的核心就是Struts-config.xml,主要控制邏輯關系的處理。

Hibernate是數據持久化層,是一種新的對象、關系的映射工具,提供了從Java類到數據表的映射,也提供了數據查詢和恢復等機制,大大減少數據訪問的復雜度。把對數據庫的直接操作,轉換為對持久對象的操作。

Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。面向接口的編程,由容器控制程序之間的依賴關系,而非傳統實現中,由程序代碼直接操控。這就是所謂“控制反轉”的概念所在:(依賴)控制權由應用代碼中轉到了外部容器,控制權的轉移,是所謂反轉。依賴注入,即組件之間的依賴關系由容器在運行期決定,形象地說,即由容器動態地將某種依賴關系注入到組件之中,起到的主要作用是解耦。

Struts、Spring、Hibernate在各層的作用:

(1)Struts負責Web層:ActionFormBean接收網頁中表單提交的數據,然后通過Action進行處理,再Forward到對應的網頁。在Struts-config.xml中定義<action-mapping>,ActionServlet會加載。

(2) Spring負責業務層管理,即Service(或Manager)。

Service為action提供統計的調用接口,封裝持久層的DAO;

可以寫一些自己的業務方法;

統一的Javabean管理方法;

聲明式事務管理;

集成Hibernate。

(3)Hibernate,負責持久化層,完成對數據庫的crud操作。提供OR/Mapping。它由一組.hbm.xml文件和POJO,是跟數據庫中的表相對應的。然后定義DAO,這些是跟數據庫打交道的類,它們會使用PO。

3. 框架業務邏輯分析:

在Struts + Spring + Hibernate的系統中,

對象的調用流程是:JSP—Action—Service—DAO—Hibernate

數據的流向是:ActionFormBean接受用戶的數據,Action將數據從ActionFormBean中取出,封裝成VO或PO,再調用業務層的Bean類,完成各種業務處理后再Forward。而業務層Bean收到這個PO對象之后,會調用DAO接口方法,進行持久化操作。

SSH框架的優點:

Hibernate的最大好處就是根據數據庫的表,反向生成實體類,并且還有關系在里面,還有就是它對數據的操作也很方便;

Spring,省去了在類里面new對象的過程,把這個調用與被調用的關系直接展示到了配置文件里,做任何操作都變得簡單了。

簡單流程舉例說明:

程序框架搭建好,并且把各種jar包導入后,就開始進行業務邏輯分析——

假設一個最基本的注冊功能:頁面有兩個文本框,一個用戶名(username)和一個密碼(password)。以QQ注冊網頁說明,這里以昵稱和密碼為代表進行舉例。

Action、Service 與Dao 三者的作用各有哪些

首先是action層:它是負責在頁面和程序之間傳輸數據的,還有作用是做頁面跳轉。頁面由用戶填寫表單數據,點擊提交按鈕,頁面的表單數據由Hibernate自動封裝到該頁面表單所對應的ActionFrom(ActionFrom跟實體類不是一個東西,ActionFrom是頁面有什么值,類里就寫什么屬性,是用來封裝表單數據用的;而實體類是完全按照數據庫的字段生成的,實體類可以當做ActionFrom用,但ActionFrom絕對不可以當做實體類用),這樣表單數據就以ActionFrom對象的形式在Action的點擊“提交按鈕”執行的那個方法里存在了。這個時候需要做的就是把表單數據存入數據庫中。此時,Action的功能告一段落,接著是把數據傳入BIZ層。

BIZE層(業務邏輯層):負責的是對數據的處理。如果沒有數據處理任務的話,此層只做單純的數據傳遞作用,而后又到了DAO層。

DAO層(數據庫操作層):負責對數據向數據庫增刪改查的操作。

看完上述內容,你們對Action、Service 與Dao 三者的作用各有哪些有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

启东市| 凉城县| 沧源| 乌苏市| 秀山| 昔阳县| 中宁县| 平南县| 南陵县| 望都县| 微山县| 格尔木市| 德阳市| 攀枝花市| 馆陶县| 无棣县| 合川市| 建水县| 尚义县| 调兵山市| 上蔡县| 芒康县| 河东区| 甘肃省| 读书| 德令哈市| 涪陵区| 衡阳县| 大安市| 睢宁县| 英吉沙县| 隆昌县| 海门市| 大埔区| 靖安县| 龙胜| 济阳县| 巩留县| 清水河县| 佛山市| 澄城县|