【Spring】JavaBean、MVC软件设计模式与Java中Dao、Service、Controll三层体系
文章目錄
- 一、JavaBean
- 二、Java三層體系
- 1.Dao層
- 2.Service層
- 3.Controller層
- 三者之間的關(guān)系
- 三、MVC設(shè)計模式
- 1.模型
- 2.視圖
- 3.控制器
- 三者之間的關(guān)系
- 三層體系與MVC之間的關(guān)系
一、JavaBean
ORM編程思想(object relational mapping,對象關(guān)系映射)
① 一個數(shù)據(jù)表對應(yīng)一個JavaBean
② 表中的一條記錄對應(yīng)JavaBean的一個對象
③ 表中的一個字段對應(yīng)JavaBean的一個屬性
(在設(shè)計實體類和數(shù)據(jù)庫表時盡量做到ORM,即屬性名和字段名對應(yīng),表名和實體類類名對應(yīng),可以方便對數(shù)據(jù)庫表的操作)
JavaBean實際就是一個普通的Java類,為了規(guī)范開發(fā),要求JavaBean具有如下規(guī)范:
① 具有一個公共的、無參的構(gòu)造方法;
② 類的屬性私有,且必須提供公共的setter和getter方法用于外部對屬性賦值和獲取屬性值;
簡而言之:JavaBean = 屬性私有 + 公共的setter/getter方法 + 空參構(gòu)造器
JavaBean分為兩類:
① 實體類Bean:專門存儲業(yè)務(wù)數(shù)據(jù)的,如Student、User 等
② 業(yè)務(wù)處理Bean:指Service或 Dao對象,專門用于處理業(yè)務(wù)邏輯和數(shù)據(jù)訪問
實體類(Entity Class):就是Java中的ORM思想形成的映射,將數(shù)據(jù)庫中的一個表映射成對應(yīng)的一個Java類(就是JavaBean),主要職責(zé)是存儲和管理系統(tǒng)內(nèi)部的信息。
POJO(Plain Ordinary Java Object,普通Java對象) :實際就是普通JavaBean,是為了避免和EJB混淆所創(chuàng)造的簡稱。
持久化類:是指其實例需要被持久化到數(shù)據(jù)庫中的類。持久化類符合JavaBean的規(guī)范,包含私有屬性,以及與之對應(yīng)的setter/getter方法。
持久化(Persistence):把數(shù)據(jù)(如內(nèi)存中的對象)保存到可永久保存的存儲設(shè)備中。(如磁盤、數(shù)據(jù)庫)
持久化的主要應(yīng)用是將內(nèi)存中的對象存儲在數(shù)據(jù)庫中、磁盤文件或XML文件中等等。
在實際開發(fā)中,JavaBean、實體類、POJO、持久類并沒有本質(zhì)的區(qū)別,但都必須滿足JavaBean的規(guī)范。在涉及Spring對Bean的管理時,稱為JavaBean;在Spring JDBC Template中需要對數(shù)據(jù)庫進行操作,稱為實體類(Entity Class);在MyBatis等持久化框架中涉及多個對象之間的關(guān)系,稱為POJO或持久化類。
之所以有不同的名稱,是因為需要處理的邏輯場合不同,類似在家里父母叫你小名,在學(xué)校老師同學(xué)叫你全名,在銀行辦理業(yè)務(wù)時工作人員叫你女士/先生,但你還是你,有姓名、性別、身份證號等屬性,這是你必須要滿足的規(guī)范。
二、Java三層體系
Dao層通過操作實體類(Entity Class),從而操作數(shù)據(jù)庫中的表,完成對應(yīng)數(shù)據(jù)的CRUD操作。
1.Dao層
Dao全稱Data Access Object(數(shù)據(jù)訪問對象)主要負責(zé)訪問數(shù)據(jù)庫,對數(shù)據(jù)的CRUD,獲取結(jié)果集返回給Service,不會涉及事務(wù)。
2.Service層
Service層主要負責(zé)業(yè)務(wù)邏輯的實現(xiàn),實際就是對Dao層的增刪改查操作的進一步封裝,涉及到事務(wù)的操作。
如:獲取數(shù)據(jù)庫連接,關(guān)閉數(shù)據(jù)庫連接,事務(wù)回滾或者一些復(fù)雜的邏輯業(yè)務(wù)處理
3.Controller層
Controller層主要用于對業(yè)務(wù)邏輯進行控制,控制用戶輸入,接收來自前端的請求,將需要執(zhí)行的操作交給Service層進行處理,再將處理后的結(jié)果返回給前端。
三者之間的關(guān)系
幾乎所有的業(yè)務(wù)邏輯,實際上最后就是對數(shù)據(jù)庫表的操作,Dao層面向數(shù)據(jù)庫中的表,Service進行事務(wù)、業(yè)務(wù)邏輯的具體實現(xiàn),Controller層對接收到的請求進行控制,然后負責(zé)調(diào)用Service層進行業(yè)務(wù)邏輯實現(xiàn),Service層將邏輯處理中需要對數(shù)據(jù)庫表的操作交給Dao層進行數(shù)據(jù)操作,最后將處理結(jié)果逐層返回給前端,用戶就可以看到最后的處理結(jié)果。
三、MVC設(shè)計模式
MVC是一種軟件設(shè)計模式,將軟件程序分為3個核心模塊:模型(Model)、視圖(View)、控制器(Controller)
1.模型
模型(Model):管理數(shù)據(jù)庫,用于數(shù)據(jù)的封裝和傳輸,實現(xiàn)具體業(yè)務(wù)功能(事務(wù)處理、算法等)。
2.視圖
視圖(View):指html或jsp頁面,負責(zé)與用戶交互,展示數(shù)據(jù),將用戶請求傳遞給控制器進行處理。
3.控制器
控制器(Controller):接收用戶請求,對請求進行處理和轉(zhuǎn)發(fā),響應(yīng)瀏覽器并向模型發(fā)送數(shù)據(jù)。
三者之間的關(guān)系
用戶通過瀏覽器向View發(fā)送請求,View負責(zé)與用戶交互,View將請求傳遞給Controller,Controller調(diào)用相應(yīng)的Model處理請求,Controller將處理結(jié)果傳遞給View,View然后經(jīng)過渲染響應(yīng)給瀏覽器。
三層體系與MVC之間的關(guān)系
三層體系和MVC之間并不矛盾,三層體系是一種編程思想,目的是為了降低模塊之間的耦合,更好的處理業(yè)務(wù)邏輯;MVC是一種軟件設(shè)計模式,按照功能對軟件進行的模塊化的劃分,目的是為了更好的實現(xiàn)軟件開發(fā)。二者之間的關(guān)系如下:
關(guān)于MVC設(shè)計模式在Spring MVC框架中會進行詳細的說明,Spring后會說到該種框架。
總結(jié)
以上是生活随笔為你收集整理的【Spring】JavaBean、MVC软件设计模式与Java中Dao、Service、Controll三层体系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摄像头poe供电原理_如何区分摄像头是否
- 下一篇: JAVA打印输出杨辉三角前n行_Java