SSM框架整合以及運行流程

最近工做中開發的項目使用了Spring-springMVC-Mybatis框架進行開發,今天來總結寫這段時間對SSM框架的理解。在對SSM框架整合前,先對框架的每層的做用以及它們之間的關係作一個簡單的介紹。java

1、SSM框架中各層級間的做用及關係

  • 表現層(springMVC):Controller層(Handler層)web

  • 負責具體的業務模塊流程的控制spring

  • Controller層經過要調用Service層的接口來控制業務流程,控制的數據庫

    配置也在Spring配置文件裏面。apache

  • 業務層(Spring):Service層編程

  • Service層:負責業務模塊的邏輯應用設計。服務器

  • 首先設計其接口,而後再實現他的實現類。架構

  • 經過對Spring配置文件中配置其實現的關聯,完成此步工做,咱們app

    就能夠經過調用Service的接口來進行業務處理。框架

  • 最後經過調用DAO層已定義的接口,去實現Service具體的 實現類。

  • 持久層(Mybatis):Dao層(Mapper層)

  • Dao層:負責與數據庫進行交互設計,用來處理數據的持久化工做。

  • DAO層的設計首先是設計DAO的接口,

  • 而後在Spring的配置文件中定義此接口的實現類,就可在其餘模塊中

    調用此接口來進行數據業務的處理,而不用關心接口的具體實現類是

    哪一個類,這裏用到的就是反射機制, DAO層的數據源配置,以及有

    關數據庫鏈接的參數都在Spring的配置文件中進行配置。

  • 視圖層:View層

  • 負責前臺jsp頁面的展現。

  • 此層須要與Controller層結合起來開發。

  • 各層間的聯繫:

  • 原本Controller層與View層是能夠放在.jsp文件裏一塊兒開發的,可是爲了下降代碼的複雜度,提升其可維護性,將其分爲了這兩層,這也體現了MVC框架的特性,即結構清晰,耦合度低。

  • Service層是創建在DAO層之上的,創建了DAO層後才能夠創建Service層,而Service層又是在Controller層之下的,於是Service層應該既調用DAO層的接口,又要提供接口給Controller層的類來進行調用,它恰好處於一箇中間層的位置。每一個模型都有一個Service接口,每一個接口分別封裝各自的業務處理方法。

    2、SSM框架說明

    2.一、Spring

    Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson 在其著做Expert One-On-One J2EE Development and Design中闡述的部分理念和原型衍生而來。它是爲了解決企業應用開發的複雜性而建立的。Spring使用基本的JavaBean來完成之前只可能由EJB完成的事情。然而,Spring的用途不只限於服務器端的開發。從簡單性、可測試性和鬆耦合的角度而言,任何Java應用均可以從Spring中受益。 簡單來講,Spring是一個輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架。

    若是想學習Java工程化、高性能及分佈式、深刻淺出。微服務、Spring,MyBatis,Netty源碼分析的朋友能夠加個人Java進階羣:582505643,羣裏有阿里大牛直播講解技術,以及Java大型互聯網技術的視頻免費分享給你們。

    2.二、SpringMVC

    Spring MVC屬於SpringFrameWork的後續產品,已經融合在Spring Web Flow裏面。Spring MVC 分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定製。

    2.三、MyBatis

    MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,而且更名爲MyBatis 。MyBatis是一個基於Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了幾乎全部的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML或註解用於配置和原始映射,將接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。

    3、三層架構運行流程


    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頁面調用,請求哪些參數,須要獲取什麼數據。

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

    相關文章
    相關標籤/搜索