SSM中各層作用及關系


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.三層架構運行流程

SSM框架下web項目運行流程

4.各層之間的聯系

  • DAO層,Service層這兩個層次可以單獨開發,互相的耦合度很低。

  • Controller,View層耦合度比較高,因而要結合在一起開發。也可以聽當做兩層來開發,這樣,在層與層之前我們只需要知道接口的定義,調用接口即可完成所需要的邏輯單元應用,項目會顯得清晰簡單。

  • 值得注意的是,Service邏輯層設計: 
    • Service層是建立在DAO層之上的,在Controller層之下。因而Service層應該既調用DAO層的接口,又提供接口給Controller層的類來進行調用,它處於一個中間層的位置。每個模型都有一個Service接口,每個接口分別封裝各自的業務處理方法。 
      • SSM框架下web項目運行流程

4.SSM框架實現一個web程序主要使用到如下三個技術:

  1. Spring:用到注解和自動裝配,就是Spring的兩個精髓IOC(反向控制)和 AOP(面向切面編程)。

  2. SpringMVC:用到了MVC模型,將流程控制代碼放到Controller層處理,將業務邏輯代碼放到Service層處理。

  3. Mybatis:用到了與數據庫打交道的層面,dao(mapper)層,放在所有的邏輯之后,處理與數據庫的CRUD相關的操作。

比如你開發項目的時候,需要完成一個功能模塊:

  1. 先寫實體類entity,定義對象的屬性,(可以參照數據庫中表的字段來設置,數據庫的設計應該在所有編碼開始之前)。

  2. 寫Mapper.xml(Mybatis),其中定義你的功能,對應要對數據庫進行的那些操作,比如 insert、selectAll、selectByKey、delete、update等。

  3. 寫Mapper.java/Dao.java,將Mapper.xml中的操作按照id映射成Java函數。實際上就是Dao接口,二者選一即可。

  4. 寫Service.java,為控制層提供服務,接受控制層的參數,完成相應的功能,並返回給控制層。

  5. 寫Controller.java,連接頁面請求和服務層,獲取頁面請求的參數,通過自動裝配,映射不同的URL到相應的處理函數,並獲取參數,對參數進行處理,之后傳給服務層。

  6. 寫JSP頁面調用,請求哪些參數,需要獲取什么數據。

 

源網址:https://blog.csdn.net/weixin_41871468/article/details/81329712


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM