
摘 要:在Web應用程序的開發設計中,框架開發的選擇是非常重要的。一個好的框架開發可以加快Web應用程序的開發速度,降低開發成本,減輕開發人員的工作量。同時,Web應用程序具有良好的性能可擴展性和可移植性。基于SpringMVC + Spring + Mybatis (SSM)的框架具有良好的性能和快速的開發效率,逐漸成為Web應用的主流開發框架。
關鍵詞:Web應用程序;SpringMVC;Spring;Mybatis;框架
Spring是一個開源框架,是2003年出現的輕量級Java開發框架。創建它是為了降低企業應用程序開發的復雜性。該框架的主要優點之一是它的分層體系結構,它允許用戶選擇使用哪個組件,同時為J2EE應用程序開發提供集成框架。Spring使用基本的JavaBean來完成以前只能由EJB完成的事情。然而,Spring的使用并不局限于服務器端開發。對于簡單性、可測試性和失耦合性,任何Java應用程序都可以從Spring中受益。Spring的核心是控制反轉(IoC)和面向方面編程(AOP)。簡單來說,Spring是一個分層的JavaSE/ EE全棧(一站式)輕量級開源框架。
SpringMVC屬于Spring框架的后續產品,已經集成到Spring Web Flow中。Spring框架為構建Web應用程序提供了一個功能齊全的MVC模塊。SpringMVC解耦了控制器、模型對象、調度程序和處理程序對象的角色,這使得它們更容易定制。
Mybatis是一個開源項目iBatis的apache,這個項目的代碼是從Google轉移過來的apache軟件基金會,并更名為MyBatis。MyBatis是一個優秀的持久性框架,它支持一般的SQL查詢、存儲過程和高級映射。MyBatis消除了幾乎所有的JDBC代碼、參數的手動設置和結果集的檢索。mybatisx使用簡單的XML或注釋進行配置和原始映射,以映射接口和Java的pojo (Plain Old Java Objects,普通Java對象)放入數據庫的記錄中。
一、SSM框架的介紹
SSM框架由Spring、SpringMVC和MyBatis三個開源框架組成,它們經常被用作數據源更簡單的web項目的框架。SpringMVC是一個控制層,spring是用來管理業務邏輯層的。Mybatis用于dao層。在架構MVC中,M指的是模型,其中包含服務、dao和javabean (pojo), V指的是視圖,C指的是控制。SSM框架體系結構如圖1所示。其中,Spring集成了每一層。通過Spring管理持久化層的映射器(相當于dao接口)。通過Spring管理業務層的服務,可以調用服務中的映射器接口。Spring進行事務控制。通過Spring,可以管理表示層的處理程序調用Handler中的服務接口。映射器、服務、處理程序都是javabean。
二、SSM體系各層的特點
持久層的DAO層(映射器)通過MyBatis調用。DAO層主要做數據持久化層的工作,一些負責聯系數據庫的任務被封裝在這里,DAO層的設計首先是設計DAO的接口,然后在Spring的配置文件中定義這個接口的實現類,然后可以在模塊中調用這個接口來處理數據的業務,而不需要關心這個具體的實現類接口是哪個類,結構看起來很清晰,DAO層的數據源配置和數據庫連接的相關參數都配置在Spring的配置文件中。
業務層的服務層:服務層主要負責業務模塊的邏輯應用設計。首先設計接口,然后設計接口的實現類,然后在Spring的配置文件中配置接口的實現關聯。通過這種方式,我們可以調用應用程序中的Service接口來執行業務處理。業務實現特別是服務層需要調用DAO層中已定義的接口,將服務層的業務邏輯封裝起來有利于通用業務邏輯的獨立性和重用性。
控制器層(Handler層):控制器層負責控制具體的業務模塊流程,在這一層中,需要調用Service層中的接口來控制業務流程,控件的配置也在Spring的配置文件中進行處理,對于具體的業務流程,會有不同的控制器,在我們具體設計流程時,可以對流程進行抽象和總結,設計出可重用的子單元流程模塊;這種方式不僅使程序結構清晰,而且大大減少了代碼量。
視圖層:該層與控制層緊密耦合,需要兩者的結合才能協同工作。View層主要負責前臺JSP頁面的呈現。
三、SSM體系各層耦合關系
DAO層和Service層可以獨立開發,它們的相互耦合度很低,可以獨立進行,這樣的模式在大型項目的開發中尤為有利。
控制器層和視圖層由于耦合程度高,所以需要一起開發,但也可以看作一個整體,獨立于前兩層進行開發。這樣,我們只需要在層和層之前知道接口的定義,只需要調用接口,然后就可以完成必要的邏輯單元應用,這是非常清晰和簡單的。
Service邏輯層的設計是基于DAO層的,在建立DAO層之后,就可以建立Service層,Service層在Controller層之下, (下轉第141頁)
(上接第139頁) 所以Service層不僅需要調用DAO層的接口,還需要為Controller層的類提供調用的接口,處于中間位置。每個模型都有一個Service接口,每個接口封裝了各自的業務處理方法。
四、SSM框架設計與實現步驟和方法
Spring+SpringMVC+MyBatis在Web開發中的設計與實現應用時,設計的方法和步驟如下:
(1)在web系統的開發中,首先要配置web的文件環境如web.xml、springmvc-servlet.xml。
(2)在web系統的開發中,要設計實體類,定義對象的屬性,屬性有get和set方法(可以參考數據庫中表的字段對其進行設置,數據庫在所有編碼開始前都要進行設計),創建構造方法。在SRC目錄下,設計mysql的配置文件。屬性數據庫,包含jdbc.driver、jdbc.url、jdbc.usernamejdbc、password四個屬性。
(3)然后,為了設計Mapper.xml,首先對其進行定制以返回結果集,各種標簽中的id屬性必須與接口中的方法相同,并且id屬性值必須是唯一的,并且不能重復使用。
(4)接下來定義web系統的功能,以對應對數據庫執行的操作,如insert、selecttall、selectByKey、delete、update等。
(5)設計Mapper.java,根據id將Mapper.xml中的操作映射到Java函數。
(6)服務層的設計,為控制層提供服務,接受控制層的參數,完成相應的功能,返回控制層。
(7)控制層設計,將頁面請求與服務層連接起來,獲取頁面請求的參數,通過自動裝配,將不同的URL映射到相應的處理函數,并獲取參數,處理參數,然后傳遞給服務層。
(8)最后,要設計JSP頁面調用,需要什么參數以及需要什么數據。
總而言之,SSM的設計和實施過程如下:
數據庫-gt;實體-gt;Mapper映射-gt;Mapper Java代碼-gt;服務層-gt;控制層-gt;表示層
五、SSM運行過程
步驟1:jsp(視圖)發送請求。
步驟2:通過調用核心Controller Dispatcher Servlet對請求解析器進行解析:Hand lend Mapping對請求進行解析,并通過映射關系匹配到Controller層。
步驟3:調用控制層中的業務邏輯層(service),數據持久化層(DAO)返回控制層,請求完成獲取結果,建立將要跳轉的視圖,(Model和view加載并傳輸數據,設置視圖)。
步驟4::調用核心控制器視圖解析器:視圖解析器解析視圖,匹配對應的頁面,實現頁面跳轉。
六、結論
本文主要介紹了Spring框架的設計與實現,Spring MVC和MyBatis在Web應用程序的開發。它簡化了開發過程和工作量。
參考文獻:
[1]沃爾斯. Spring實戰 [M]. 人民郵電出版社,2016.
[2]卡內爾. Spring開發三劍客[M],人民郵電出版社, 2020.
[3] 陳恒等. Spring Boot從入門到實戰[M]. 清華大學出版社,2020.