SSM中各層作用及關系
1.持久層:DAO層(mapper層)(屬於mybatis模塊)
-
DAO層:主要負責與數據庫進行交互設計,用來處理數據的持久化工作。
-
DAO層的設計首先是設計DAO的接口,也就是項目中你看到的Dao包。
-
然后在Spring的xml配置文件中定義此接口的實現類,就可在其他模塊中調用此接口來進行數據業務的處理,而不用關心接口的具體實現類是哪個類,這里往往用到的就是反射機制,DAO層的jdbc.properties數據源配置,以及有 關數據庫連接的參數都在Spring的配置文件中進行配置。
- ps:(有的項目里面Dao層,寫成mapper,當成一個意思理解。)
2.業務層:Service層(屬於spring模塊)
-
Service層:主要負責業務模塊的邏輯應用設計。也就是項目中你看到的Service包。
-
Service層的設計首先是設計接口,再設計其實現的類。也就是項目中你看到的service+impl包。
-
接着再在Spring的xml配置文件中配置其實現的關聯。這樣我們就可以在應用中調用Service接口來進行業務處理。
-
最后通過調用DAO層已定義的接口,去實現Service具體的實現類。
-
ps:(Service層的業務實現,具體要調用到已定義的DAO層的接口.)
3.控制層/表現層:Controller層(Handler層) (屬於springMVC模塊)
-
Controller層:主要負責具體的業務模塊流程控制,也就是你看到的controller包。
-
Controller層通過要調用Service層的接口來控制業務流程,控制的配置也同樣是在Spring的xml配置文件里面,針對具體的業務流程,會有不同的控制器。
4.View層 (屬於springMVC模塊)
-
負責前台jsp頁面的展示,此層需要與Controller層結合起來開發。
-
Jsp發送請求,controller接收請求,處理,返回,jsp回顯數據。
3.三層架構運行流程
4.各層之間的聯系
-
DAO層,Service層這兩個層次可以單獨開發,互相的耦合度很低。
-
Controller,View層耦合度比較高,因而要結合在一起開發。也可以聽當做兩層來開發,這樣,在層與層之前我們只需要知道接口的定義,調用接口即可完成所需要的邏輯單元應用,項目會顯得清晰簡單。
- 值得注意的是,Service邏輯層設計:
4.SSM框架實現一個web程序主要使用到如下三個技術:
-
Spring:用到注解和自動裝配,就是Spring的兩個精髓IOC(反向控制)和 AOP(面向切面編程)。
-
SpringMVC:用到了MVC模型,將流程控制代碼放到Controller層處理,將業務邏輯代碼放到Service層處理。
-
Mybatis:用到了與數據庫打交道的層面,dao(mapper)層,放在所有的邏輯之后,處理與數據庫的CRUD相關的操作。
比如你開發項目的時候,需要完成一個功能模塊:
-
先寫實體類entity,定義對象的屬性,(可以參照數據庫中表的字段來設置,數據庫的設計應該在所有編碼開始之前)。
-
寫Mapper.xml(Mybatis),其中定義你的功能,對應要對數據庫進行的那些操作,比如 insert、selectAll、selectByKey、delete、update等。
-
寫Mapper.java/Dao.java,將Mapper.xml中的操作按照id映射成Java函數。實際上就是Dao接口,二者選一即可。
-
寫Service.java,為控制層提供服務,接受控制層的參數,完成相應的功能,並返回給控制層。
-
寫Controller.java,連接頁面請求和服務層,獲取頁面請求的參數,通過自動裝配,映射不同的URL到相應的處理函數,並獲取參數,對參數進行處理,之后傳給服務層。
-
寫JSP頁面調用,請求哪些參數,需要獲取什么數據。
源網址:https://blog.csdn.net/weixin_41871468/article/details/81329712