天天看點

SSM架構下web項目運作流程

1. 前言

  • 筆者在做java web項目時,使用SSM+maven+easyui/bootstarp技術,為了強化學習,順便先梳理一下SSM架構下每層的作用及它們之間的關系。在這裡記錄一下,希望有疑惑的人能找到答案。

2.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項目運作流程

5.SSM架構實作一個web程式主要使用到如下三個技術:

  • Spring:用到注解和自動裝配,就是Spring的兩個精髓IOC(反向控制)和 AOP(面向切面程式設計)。
  • SpringMVC:用到了MVC模型,将流程控制代碼放到Controller層處理,将業務邏輯代碼放到Service層處理。
  • 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頁面調用,請求哪些參數,需要擷取什麼資料。

好了,到這裡就結束了,基本上,SSM架構下web項目運作流程,各個層次之間的作用,代碼定義和實作的東西基本上都說明了。

You got a dream, you gotta protect it. 

如果你有夢想的話,就要去捍衛它 。 ——《當幸福來敲門》

ssm

繼續閱讀