在ssh整合框架中service層的作用

2022-02-25 03:17:36 字數 3346 閱讀 8433

1樓:babyan澀

從字面的意思上來看,service是業務層,dao是資料訪問層。

標準主流現在的程式設計方式都是採用mvc綜合設計模式,mvc本身不屬於設計模式的一種,它描述的是一種結構,最終目的達到解耦,解耦說的意思是更改某一層**,不會影響其他層**,如果會像spring這樣的框架,會了解面向介面程式設計,表示層呼叫控制層,控制層呼叫業務層,業務層呼叫資料訪問層。

初期也許都是new物件去呼叫下一層,比如在業務層new一個dao類的物件,呼叫dao類方法訪問資料庫,這樣寫是不對的,因為在業務層中是不應該含有具體物件,最多只能有引用,如果有具體物件存在,就耦合了。當那個物件不存在,還要修改業務的**,這不符合邏輯。

例如:1、假設現在做這個功能會用到user表和許可權表,那麼前臺的頁面訪問action,action再去呼叫使用者模組service,使用者模組service判斷你是操作user表還是許可權表,如果操作的是user表則service的實現類就去呼叫userdao,如果是操作的是許可權表則呼叫許可權的dao。

2、也就是說dao一定是和資料庫的每張表一一對應,而service則不是。其實一個專案一個service和一個dao其實也一樣可以運算元據庫,只不過那要是表非常多,出問題了,那找起來多麻煩,而且太亂了。

3、好處就是整個專案非常系統化,和資料庫的表能一致,而且功能模組化,這樣以後維護或者改錯比較容易,效能也高一些。

2樓:業智鑫

有效地分離資料訪問層(dao)和業務層(service),使之各司其職,舉例說明:如果dao層訪問資料庫,得到的資料根據業務需要要進行加密,那麼取資料和把資料加密就是2個步驟,訪問資料和業務邏輯加工,如果去掉任意一層,那麼剩下的那一層就超出工作範圍了,所以dao層就是取資料用的,service層就是加工資料用的,這就實現了資料訪問層和業務邏輯層的有效分離

3樓:匿名使用者

一樓說的對,加密解密資料

j**a ssh框架中搭建框架時,dao層有什麼作用?service又有什麼作用?action層又有什麼作用?

4樓:匿名使用者

dao層是使用了抄hibernate連線資料庫

、運算元據庫(增刪改查)。

5樓:匿名使用者

dao層是廚師,做飯的。(對資料庫的增刪改查)

service層是客人要的服務。(介面,一些方法)

action層是服務員。將客人需要的服務給廚師,讓廚師去做飯去!

spring在ssh框架中到底起到什麼作用

6樓:匿名使用者

spring核心有兩個方面ioc(依賴注入)和aop(物件導向切面程式設計)

spring貫穿在整個專案之中,每當我們需要new 一個物件的時候,其實很耗資源的,

通過spring可以被動的讓我們獲取想要的物件而不用每次都去new

aop裡面的**也用的很廣泛,比如說我們有時候需要呼叫某個類的方法的時候

,不想通過物件去呼叫,而是用**間接地去呼叫

我覺得三大框架裡面spring最重要,也是最難的,好好學啊,有時間多研究研究原始碼

7樓:匿名使用者

任何語言、框架的發展都是為了降低程式之間的依賴性和耦合性,使重用性達到最高,在我們平時的四層框架中,介面層page、action層、業務邏輯層service、資料訪問層dao,雖然分層明確,**清晰,但是層與層之間有著很高的依賴性,比如service層處理業務邏輯構造sql語句時需要引用dao層的物件,呼叫dao層的方法執行sql語句,而action層處理介面動作的時候又要引用service層的物件,呼叫service層的方法,這樣一來例項action物件的時候要同時例項至少一個service物件和一個dao物件,這樣依賴性太強,因此我們把他們做成介面,只在類裡寫各層的引用,而不對引用進行例項化,用spring的ioc依賴注入,在spring容器啟動時來例項化引用,降低了程式的依賴性,如果某個業務邏輯發生變化,可以重新寫一個新的業務邏輯實現類,修改spring的配置檔案即可,不用每個action**中去改new的物件,這就是依賴注入。

而我們通常說一個方法只做一件事情,但是實際是實現不了的,因為一個方法除了做業務邏輯處理外還要至少處理事務、日誌等事情,這些東西沒有辦法脫離,因此spring的aop面向切面,就將事務和日誌可以定義成切面,配置的配置檔案中,在你需要的時候切入進來,**中缺很清晰沒有事務和日誌,這就是spring的aop。

8樓:匿名使用者

就是更好的整合struts和hibernate呀

9樓:我是川大人

主要是控制反轉來進行注入的。

10樓:匿名使用者

起什麼作用你把他去掉不就知道了

11樓:匿名使用者

整合hibernate和struts的

關於ssh框架中的介面類的作用

12樓:匿名使用者

我們應copy該面向介面程式設計。

介面只是定義bai一些規du範,表示對外公開的方法zhi,具體實現應該交dao給子類去實現,如用jdbc連線資料庫,也就是dao層。比如此時有兩個資料庫,oracle、mysql。此時這個介面需要公開的功能為增、刪、查、改。

由於oracle與mysql有些方面是不一樣的。所以這個dao介面就需要有兩個子類。一個為以oracle操作的dao,另外一個是以mysql操作的dao。

這樣對於service層來說,它根本不關心你是oracle還是mysql實現,他只關心你的dao給我提供了什麼功能。我能達到功能就行了。具體實現他不關心。

這樣,如果以後想連sql server資料庫時,只需要新增加個dao實現類,service層是不用動的。對於它只知道dao。具體實現可以通過spring的依賴注入到dao例項中。

如果沒有面向介面程式設計,即在service層對應一種實現類,並且實現類裡面的方法名稱或引數都可能不太一樣。當你想改變成另外一種資料庫實現時,那可就麻煩多了。

簡述ssh框架每層的作用及框架的優缺點

13樓:凶___器

我認為ssh中的struts2層主要是負copy責控制器這塊。用來接收引數進行呼叫業務層從而更新顯示資料到頁面的作用。

spring是個容器。也是ssh的總控制器。它囊括了struts2.

spring.hibernate。並且對其進行明確的分工。

以及注入值。縮減了大量**。且易維護等。

hibernate是用來很快速方便的進行業務開發。採用物件導向的方式自動生成sql語句。

缺點就是配置太麻煩。容易出錯。

優點是能夠很好的實現業務層,web層,控制層等的分離。易於維護和擴充套件。

在OSI的七層參考模型中,工作在第三層上的網間連線裝置是A集線器B路由器C交換機D閘道器

b.路由器 集線器是物理層 交換機是資料鏈路層,閘道器是傳輸層 b 路由器 其實交換機也有三層交換機 這個題 不嚴謹啊 如果是單選題則選b,因為路由器是純正的三層裝置 如果是多選題,則選b,c,因為現如今的許多交換機已經可以開啟路由功能了,也屬於三層裝置 計算機網路基礎知識試題及答案 1 運算器和控...

整合有人胰島素基因的質粒在大腸桿菌中可以表達,使大腸桿菌可以生產胰島素對嗎

胰島素基抄因確實表達了,但胰 不正確,因為大腸桿菌是原核生物,原核生物只有核糖體這一個細胞器,mrna只能被初步專表達,產生胰島素原,此屬時這種物質並不具備活性,活性中心未經處理而暴露,只有在內質網,高爾基體後續加工後胰島素原才能變成有活性的胰島素,因此我認為這句話不正確,產生的物質並不是胰島素而是...

框架結構中的連續樑在什麼地方,有些連續一樣配筋的框架樑屬於連

框架是平面結構,在三榀以上框架之間的樑可以設計成連續樑。連續樑比簡支樑節約材料 連續樑在什麼地方看下圖 樓主問的是連續樑bai 不是連樑du。連續樑zhi麼,就是指多跨樑。也可dao以理解為,有三回個或者更多支點的樑答 總長度通常比較長 連續樑在配筋上沒有配筋一樣的說法。通常來說,只要樑跨度 樑截面...