1樓:匿名使用者
dao其實是乙個櫻族橡資料訪問層的設穗激計機制,並不一定非要在spring中,在各種框架的系統中,都可以用dao來簡稱資料訪問層。這層設計,可以靈活的要脊旁你訪問各個資料庫資料,快取資料,檢索資料,提供了各種方法。程式設計師幾乎只要關注業務模組中間層的設計,資料庫這塊幾乎處於一種託管狀態。
以後系統移植,公升級啊,整合其他系統啊,都很方便。維護成本降低很多。
2樓:匿名使用者
在j2ee 應用中,業務元件通常使用jdbc api訪問和改變關聯式資料庫中的持久化資料。這樣經常導致將持久化**和業務邏輯差旦混合在一起---a bad idea. data accessobject (dao) 設計模式通過把持久化邏輯分離到資料訪問類中從而解決了凱慶伏這個問題。
本篇文章有關於dao 設計模式的入門 ,重點放在dao模式的優缺點。然後介紹了spring jdbc/dao 框架並展示了它如何優雅的解決傳統dao 設計中的缺點。
傳統dao設計 按照j2ee 核心設計模式( core j2ee desgin pattern) 這本書中的分類,data accessobject(dao) 屬於整合層設計模式。dao在乙個分開的層中封裝了持久化儲存訪問和操作的**。本篇文章中設計到的持久儲存指的是rdbms。
dao模式是業務邏輯層和持久儲存層之間的抽象層,例如圖1. 業務物件通過資料訪問物件訪問rdbms(datasource)。這個抽象層可以靈活的介入並簡化了應用程式**。
理想情況下,當改盯攜變資料來源,比如更換資料庫廠商或者型別,只需要改變資料訪問物件並對業務物件的影響最小。
j**a ssh框架中搭建框架時,dao層有什麼作用?service又有什麼作用?action層又有什麼作用?
3樓:網友
dao層是使用了抄hibernate連線資料庫。
運算元據庫(增刪改查)。
4樓:網友
dao層是廚師,做飯的。(對資料庫的增刪改查)
service層是客人要的服務。(介面,一些方法)
action層是服務員。將客人需要的服務給廚師,讓廚師去做飯去!
spring mvc的src下dao和service的作用
5樓:網友
service 一般做邏輯判斷的。
比如判斷你接收到的字串 是否符合存入資料庫的要求 是否是一堆空格之類的。
dao 就是做資料庫操作的層 增刪改查。
spring的配置檔案中這是什麼意思?如圖。它的作用是什麼?dao和service層就是靠這個聯絡起來的嗎?
6樓:網友
usermgrbase的bean裡有乙個userdao的屬性 就是變數。
spring會自動查詢name=userdao的bean,然後注入到名為usermgrbase的bean裡。
spring中的dao和service是單例還是非單例,為什麼?
7樓:網友
spring的ioc容器中的物件預設都是單例的。當然也可以將其改為不是單例的。在xml檔案中通過的屬性scope="prototype"可以改為非單例的,使用註解的話,@scope("prototype")。
具體某個物件是否應該被設定為單例的,取決於它的作用。比如service, 用於呼叫dao, 整個系統中乙個模組就只需要乙個乙個,沒有必要再每次使用的時候都去new, 所以應該使用單例。同理dao也是如此。
但是spring中的單例模式和pojo的單例並不一樣。
8樓:網友
spring生成物件預設是單例的。通過scope屬性可以更改為多例。
註解方式的話可以在在註解上生命單利多例。
關於spring中@transactional一般是在service層使用,還是在dao層使用好?
9樓:爸氣凌人
用在service層,比如service中有乙個方法add,add方法中又會有不同的業務與方法(很有可能是呼叫dao的多個方法),add方法中其中一項出錯,則對整個業務(add)進行回滾。
10樓:
service層。
在這層有邏輯判斷`
只有通過了邏輯判斷才能允許事物的提交。
分層架構中,dao層的作用是什麼?如果不要dao層,能不能實現有dao層時的優點
11樓:time陌言成殤
dao層又叫資料訪問物件層, 封裝資料庫的底層操作細節如資料庫的連線及對資料的crud等操作,它不但遮蔽了資料儲存最終介質的不同,也遮蔽了具體實現技術的不同。一般在其上還會有service層來封裝業務操作進行進一步的解耦。不用dao層也能實現dao層時的優點如自己封裝乙個類似dao層功能的資料庫操作模板類,可參考spring的dao層思想。
j**a三大框架的 dao、implementdao、service、implementservice分別有什麼作用?詳細點。加分(男人說的).
12樓:烏微月
其實 service,dao都是mvc模式中的m,就是 model,service主要處理邏輯,dao處理和資料庫的互動,就是存取資料。那為什麼在加一層藉口呢,就是為了分的更清楚啊,而且這樣可以做到更好的強內聚,弱耦合,編碼**的修改和重構。
spring mvc裡面,為什麼要單獨出來乙個service層呼叫dao再傳給controller啊? 這樣設計有什麼好處?
13樓:匿名使用者
首先我們先知道抄spring的專案分層襲:
按照mvc的設計理念來講,bai由service服務層呼叫持du久層dao,在由zhicontroller呼叫service,這符合mvc的分層結dao構也符合我們的程式設計習慣。
dao一般是做封裝,service做業務,controller校驗資料。
要是controller直接呼叫dao的話,controller直接拿到資料這是不安全的,而且平常的一些業務邏輯處理不好處理,因為業務需求是即時改變的,把業務寫在dao裡還要全部更改業務資訊,這樣不僅不會節約成本還增加耦合,**複用性也不高後期**維護也困難。建議還是遵循mvc分層結構開發,儘管是少量資料也不建議直接呼叫dao。關於好處可以上別人部落格借閱:
網頁連結。
14樓:網友
分層沒有一定之規,看架構師的設計了。不過按照我的理解業務邏輯應該在service這一層,service下面是dao層,不要把邏輯寫到dao層裡面去。
15樓:網友
controller控制器bai 一般接收請求,**,返回du資料等zhi操作。
service層處理業務邏輯dao
dao層負責資料庫 增刪版改查。
service dao都會有權實現類,這就是mvc設計模式,如果你不知道為什麼要這麼設計,那你先了解下什麼是mvc
16樓:
這個做更好地遵循了mvc的設計思想,service裡面是業務,dao裡面是資料訪問,controller是控制器,這樣的業務流程才是合理的。
17樓:高樹是數
一般都寫在server裡面,controller一般用於前後臺直接的互動,不做業務處理,而dao則是用於處理與資料庫之間的互動,這樣可以實現解耦,實際運用中server裡面的**都是複用最多的。
18樓:飯依然特喜
完美的架構就是baicontroller只與前臺du做互動,不寫業zhi務邏dao輯。
具體業務。邏輯實現版就放在service層,這樣層次清權晰,而且可以把service層可以注入到不通的controller,提高**複用率,事物一般也配置在service
大的專案一般都遵循這個規則,提高**可讀性,,,如果你非要把所有**都寫在controller層 系統也能執行 不會報錯。
19樓:網友
這樣的話,如果你復不想用制springmvc換了struts2。那麼service以後的都可bai以不動。
如果你都沒有,那麼多一點**量也可以多收一點錢。
20樓:網友
3層架構,為的是安全性考慮。
21樓:原戀風雲
每一層做每一層的事情,分工明確,便於**維護。
核心**寫在controller層,前端頁面**寫在v層。
22樓:匿名使用者
個人理解。
業務邏輯一般放到service層,可以方便後續的擴充套件和重用沒有完善的規定。
controller層只做簡單的引數校驗,然後由service層進行業務邏輯處理。
23樓:獨孤木人
service層作用就一bai
個,處理複雜的業務du邏輯。
zhi在比較大型的系統中,由於dao處理的邏輯很復版雜,一次請求可能要權多次運算元據庫,而如果就把這些呼叫dao層的**寫到action中,可是可以,但是不利於**的維護和可以複用性,所有一般都會在dao層和action中間加上乙個service層,將一些複雜的邏輯交給service層處理。
24樓:千慚
業務邏輯寫service層。
controller主要做抄引數解析和**檢視bai 不寫業務邏輯du
例如乙個登入zhi功能, 登入這個邏輯設計在service層,但提取使用者dao名和密碼 , **登入成功頁面/登入失敗頁面等都是在controller層, 當然這只是一種利於解耦的思想規範吧, 實際操作有時也混雜不清的。 儘量遵守就是了。
25樓:網友
多一層處理業務邏輯,實現介面加密封裝等操作。
26樓:莪湜仩偙
mvc 是表示 model 物件層 view 檢視層 controller 控制器層;其實可以不寫service層,但是這樣會導致controller裡**太內長,很難維護~而且給容人一種很亂的感覺;用了service層可將資料庫操作放到service層裡寫,減少控制器的**量,整體**結構也很清晰;
27樓:為人愛兮
物件導向程式設計,抄業務邏輯做在service層實襲現。dao層主要用來操作db,controller主要用來處理request呼叫不同的service方法。
再具體一點:controller主要是拿到請求實體voreq,呼叫service方法後得到返回的respvo給client端。
service主要是完成業務邏輯處理,reqvo轉化成資料庫實體po,或者po轉化成respvo.
dao層主要是直接操作db
28樓:划船不動漿靠浪
主要是把各個功能分開,便於以後維護,每個包處理同類的事情,比。
如說dao,處理與數專據庫相關屬的操作,service處理業務邏輯的操作,controller處理響應操作,pojo處理實體類對應資料庫。
專案的業務邏輯一般都寫在service層中,service就是處理業務邏輯的,service中比較常用有級聯刪除等,而這些沒有乙個較完善的規定,這些是隨著開發的深入瞭解逐漸形成的一種不成文的規定,主要是方便維護和開發!
29樓:l舊夢顏
service就是業務邏輯層,主要處理一些業務邏輯。
controller知識接收引數,交給service處理即可。
30樓:愛搗蛋的飛彈
1規範需要,2service層寫邏輯,你查詢起來也方便,3註解之類的需要,都在service裡寫。
31樓:五個秘密
我之前也有過這樣疑問,降低耦合什麼的估計你也看過了,等你真正做到專案就知道了。
32樓:青衫隱隱孤舟微
算是一種大家公認的規範吧。
Spring中bean的含義是什麼啊?
bean就相當於定義乙個元件,這個元件是用於具體實現某個功能的。這裡的所定義的bean就相當於給了你乙個簡潔方便的方法來呼叫這個元件實現你要完成的功能。在spring中,從beanfactory或applicationcontext取得的例項被預設為singleton,也就是預設每乙個bean名稱只...
spring中的依賴注入有什麼用
依賴注入是spring的的兩大核心之一,也叫控制反轉,他的作用是將建立物件的管理交給spring容器,以前寫專案會用new people的方式來建立乙個people類,現在用了spring後,可以在xml中配置,也可以用註解的方式,在class檔案開始部分寫下面的 然後在這個class檔案中使用到p...
塑料在生活中的用處,塑料有哪些用處?
1 電器絕緣 例如導線的絕緣層,或電子零件的外殼 2 機械材料 因為具有比金屬輕與防鏽蝕的特性 3 建築材料與家具材質 4 包裝材料 例如 塑膠袋 5 人造纖維 例如 尼龍,聚酯纖維 塑料的原始目標是用為電絕緣物,自從發現電木以來,屢經改良,塑料大有助於超高壓的發展和薄膜電子零件的進步。塑料巳被廣泛...