亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SSM框架在Web應(yīng)用開(kāi)發(fā)中的設(shè)計(jì)與實(shí)現(xiàn)

        2023-01-01 00:00:00翟高粵
        客聯(lián) 2023年6期

        摘 要:在Web應(yīng)用程序的開(kāi)發(fā)設(shè)計(jì)中,框架開(kāi)發(fā)的選擇是非常重要的。一個(gè)好的框架開(kāi)發(fā)可以加快Web應(yīng)用程序的開(kāi)發(fā)速度,降低開(kāi)發(fā)成本,減輕開(kāi)發(fā)人員的工作量。同時(shí),Web應(yīng)用程序具有良好的性能可擴(kuò)展性和可移植性。基于SpringMVC + Spring + Mybatis (SSM)的框架具有良好的性能和快速的開(kāi)發(fā)效率,逐漸成為Web應(yīng)用的主流開(kāi)發(fā)框架。

        關(guān)鍵詞:Web應(yīng)用程序;SpringMVC;Spring;Mybatis;框架

        Spring是一個(gè)開(kāi)源框架,是2003年出現(xiàn)的輕量級(jí)Java開(kāi)發(fā)框架。創(chuàng)建它是為了降低企業(yè)應(yīng)用程序開(kāi)發(fā)的復(fù)雜性。該框架的主要優(yōu)點(diǎn)之一是它的分層體系結(jié)構(gòu),它允許用戶選擇使用哪個(gè)組件,同時(shí)為J2EE應(yīng)用程序開(kāi)發(fā)提供集成框架。Spring使用基本的JavaBean來(lái)完成以前只能由EJB完成的事情。然而,Spring的使用并不局限于服務(wù)器端開(kāi)發(fā)。對(duì)于簡(jiǎn)單性、可測(cè)試性和失耦合性,任何Java應(yīng)用程序都可以從Spring中受益。Spring的核心是控制反轉(zhuǎn)(IoC)和面向方面編程(AOP)。簡(jiǎn)單來(lái)說(shuō),Spring是一個(gè)分層的JavaSE/ EE全棧(一站式)輕量級(jí)開(kāi)源框架。

        SpringMVC屬于Spring框架的后續(xù)產(chǎn)品,已經(jīng)集成到Spring Web Flow中。Spring框架為構(gòu)建Web應(yīng)用程序提供了一個(gè)功能齊全的MVC模塊。SpringMVC解耦了控制器、模型對(duì)象、調(diào)度程序和處理程序?qū)ο蟮慕巧@使得它們更容易定制。

        Mybatis是一個(gè)開(kāi)源項(xiàng)目iBatis的apache,這個(gè)項(xiàng)目的代碼是從Google轉(zhuǎn)移過(guò)來(lái)的apache軟件基金會(huì),并更名為MyBatis。MyBatis是一個(gè)優(yōu)秀的持久性框架,它支持一般的SQL查詢、存儲(chǔ)過(guò)程和高級(jí)映射。MyBatis消除了幾乎所有的JDBC代碼、參數(shù)的手動(dòng)設(shè)置和結(jié)果集的檢索。mybatisx使用簡(jiǎn)單的XML或注釋進(jìn)行配置和原始映射,以映射接口和Java的pojo (Plain Old Java Objects,普通Java對(duì)象)放入數(shù)據(jù)庫(kù)的記錄中。

        一、SSM框架的介紹

        SSM框架由Spring、SpringMVC和MyBatis三個(gè)開(kāi)源框架組成,它們經(jīng)常被用作數(shù)據(jù)源更簡(jiǎn)單的web項(xiàng)目的框架。SpringMVC是一個(gè)控制層,spring是用來(lái)管理業(yè)務(wù)邏輯層的。Mybatis用于dao層。在架構(gòu)MVC中,M指的是模型,其中包含服務(wù)、dao和javabean (pojo), V指的是視圖,C指的是控制。SSM框架體系結(jié)構(gòu)如圖1所示。其中,Spring集成了每一層。通過(guò)Spring管理持久化層的映射器(相當(dāng)于dao接口)。通過(guò)Spring管理業(yè)務(wù)層的服務(wù),可以調(diào)用服務(wù)中的映射器接口。Spring進(jìn)行事務(wù)控制。通過(guò)Spring,可以管理表示層的處理程序調(diào)用Handler中的服務(wù)接口。映射器、服務(wù)、處理程序都是javabean。

        二、SSM體系各層的特點(diǎn)

        持久層的DAO層(映射器)通過(guò)MyBatis調(diào)用。DAO層主要做數(shù)據(jù)持久化層的工作,一些負(fù)責(zé)聯(lián)系數(shù)據(jù)庫(kù)的任務(wù)被封裝在這里,DAO層的設(shè)計(jì)首先是設(shè)計(jì)DAO的接口,然后在Spring的配置文件中定義這個(gè)接口的實(shí)現(xiàn)類,然后可以在模塊中調(diào)用這個(gè)接口來(lái)處理數(shù)據(jù)的業(yè)務(wù),而不需要關(guān)心這個(gè)具體的實(shí)現(xiàn)類接口是哪個(gè)類,結(jié)構(gòu)看起來(lái)很清晰,DAO層的數(shù)據(jù)源配置和數(shù)據(jù)庫(kù)連接的相關(guān)參數(shù)都配置在Spring的配置文件中。

        業(yè)務(wù)層的服務(wù)層:服務(wù)層主要負(fù)責(zé)業(yè)務(wù)模塊的邏輯應(yīng)用設(shè)計(jì)。首先設(shè)計(jì)接口,然后設(shè)計(jì)接口的實(shí)現(xiàn)類,然后在Spring的配置文件中配置接口的實(shí)現(xiàn)關(guān)聯(lián)。通過(guò)這種方式,我們可以調(diào)用應(yīng)用程序中的Service接口來(lái)執(zhí)行業(yè)務(wù)處理。業(yè)務(wù)實(shí)現(xiàn)特別是服務(wù)層需要調(diào)用DAO層中已定義的接口,將服務(wù)層的業(yè)務(wù)邏輯封裝起來(lái)有利于通用業(yè)務(wù)邏輯的獨(dú)立性和重用性。

        控制器層(Handler層):控制器層負(fù)責(zé)控制具體的業(yè)務(wù)模塊流程,在這一層中,需要調(diào)用Service層中的接口來(lái)控制業(yè)務(wù)流程,控件的配置也在Spring的配置文件中進(jìn)行處理,對(duì)于具體的業(yè)務(wù)流程,會(huì)有不同的控制器,在我們具體設(shè)計(jì)流程時(shí),可以對(duì)流程進(jìn)行抽象和總結(jié),設(shè)計(jì)出可重用的子單元流程模塊;這種方式不僅使程序結(jié)構(gòu)清晰,而且大大減少了代碼量。

        視圖層:該層與控制層緊密耦合,需要兩者的結(jié)合才能協(xié)同工作。View層主要負(fù)責(zé)前臺(tái)JSP頁(yè)面的呈現(xiàn)。

        三、SSM體系各層耦合關(guān)系

        DAO層和Service層可以獨(dú)立開(kāi)發(fā),它們的相互耦合度很低,可以獨(dú)立進(jìn)行,這樣的模式在大型項(xiàng)目的開(kāi)發(fā)中尤為有利。

        控制器層和視圖層由于耦合程度高,所以需要一起開(kāi)發(fā),但也可以看作一個(gè)整體,獨(dú)立于前兩層進(jìn)行開(kāi)發(fā)。這樣,我們只需要在層和層之前知道接口的定義,只需要調(diào)用接口,然后就可以完成必要的邏輯單元應(yīng)用,這是非常清晰和簡(jiǎn)單的。

        Service邏輯層的設(shè)計(jì)是基于DAO層的,在建立DAO層之后,就可以建立Service層,Service層在Controller層之下, (下轉(zhuǎn)第141頁(yè))

        (上接第139頁(yè)) 所以Service層不僅需要調(diào)用DAO層的接口,還需要為Controller層的類提供調(diào)用的接口,處于中間位置。每個(gè)模型都有一個(gè)Service接口,每個(gè)接口封裝了各自的業(yè)務(wù)處理方法。

        四、SSM框架設(shè)計(jì)與實(shí)現(xiàn)步驟和方法

        Spring+SpringMVC+MyBatis在Web開(kāi)發(fā)中的設(shè)計(jì)與實(shí)現(xiàn)應(yīng)用時(shí),設(shè)計(jì)的方法和步驟如下:

        (1)在web系統(tǒng)的開(kāi)發(fā)中,首先要配置web的文件環(huán)境如web.xml、springmvc-servlet.xml。

        (2)在web系統(tǒng)的開(kāi)發(fā)中,要設(shè)計(jì)實(shí)體類,定義對(duì)象的屬性,屬性有g(shù)et和set方法(可以參考數(shù)據(jù)庫(kù)中表的字段對(duì)其進(jìn)行設(shè)置,數(shù)據(jù)庫(kù)在所有編碼開(kāi)始前都要進(jìn)行設(shè)計(jì)),創(chuàng)建構(gòu)造方法。在SRC目錄下,設(shè)計(jì)mysql的配置文件。屬性數(shù)據(jù)庫(kù),包含jdbc.driver、jdbc.url、jdbc.usernamejdbc、password四個(gè)屬性。

        (3)然后,為了設(shè)計(jì)Mapper.xml,首先對(duì)其進(jìn)行定制以返回結(jié)果集,各種標(biāo)簽中的id屬性必須與接口中的方法相同,并且id屬性值必須是唯一的,并且不能重復(fù)使用。

        (4)接下來(lái)定義web系統(tǒng)的功能,以對(duì)應(yīng)對(duì)數(shù)據(jù)庫(kù)執(zhí)行的操作,如insert、selecttall、selectByKey、delete、update等。

        (5)設(shè)計(jì)Mapper.java,根據(jù)id將Mapper.xml中的操作映射到Java函數(shù)。

        (6)服務(wù)層的設(shè)計(jì),為控制層提供服務(wù),接受控制層的參數(shù),完成相應(yīng)的功能,返回控制層。

        (7)控制層設(shè)計(jì),將頁(yè)面請(qǐng)求與服務(wù)層連接起來(lái),獲取頁(yè)面請(qǐng)求的參數(shù),通過(guò)自動(dòng)裝配,將不同的URL映射到相應(yīng)的處理函數(shù),并獲取參數(shù),處理參數(shù),然后傳遞給服務(wù)層。

        (8)最后,要設(shè)計(jì)JSP頁(yè)面調(diào)用,需要什么參數(shù)以及需要什么數(shù)據(jù)。

        總而言之,SSM的設(shè)計(jì)和實(shí)施過(guò)程如下:

        數(shù)據(jù)庫(kù)-gt;實(shí)體-gt;Mapper映射-gt;Mapper Java代碼-gt;服務(wù)層-gt;控制層-gt;表示層

        五、SSM運(yùn)行過(guò)程

        步驟1:jsp(視圖)發(fā)送請(qǐng)求。

        步驟2:通過(guò)調(diào)用核心Controller Dispatcher Servlet對(duì)請(qǐng)求解析器進(jìn)行解析:Hand lend Mapping對(duì)請(qǐng)求進(jìn)行解析,并通過(guò)映射關(guān)系匹配到Controller層。

        步驟3:調(diào)用控制層中的業(yè)務(wù)邏輯層(service),數(shù)據(jù)持久化層(DAO)返回控制層,請(qǐng)求完成獲取結(jié)果,建立將要跳轉(zhuǎn)的視圖,(Model和view加載并傳輸數(shù)據(jù),設(shè)置視圖)。

        步驟4::調(diào)用核心控制器視圖解析器:視圖解析器解析視圖,匹配對(duì)應(yīng)的頁(yè)面,實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)。

        六、結(jié)論

        本文主要介紹了Spring框架的設(shè)計(jì)與實(shí)現(xiàn),Spring MVC和MyBatis在Web應(yīng)用程序的開(kāi)發(fā)。它簡(jiǎn)化了開(kāi)發(fā)過(guò)程和工作量。

        參考文獻(xiàn):

        [1]沃爾斯. Spring實(shí)戰(zhàn) [M]. 人民郵電出版社,2016.

        [2]卡內(nèi)爾. Spring開(kāi)發(fā)三劍客[M],人民郵電出版社, 2020.

        [3] 陳恒等. Spring Boot從入門到實(shí)戰(zhàn)[M]. 清華大學(xué)出版社,2020.

        夜夜添夜夜添夜夜摸夜夜摸| 国产成av人在线观看| 天堂av网手机线上天堂| 色偷偷亚洲精品一区二区| 亚洲啪啪视频一区二区| 国产精品夜间视频香蕉| 中文字幕一区二区三区乱码不卡| 国产熟女精品一区二区| 国产一区二区视频免费在线观看| 精品人妻中文无码av在线| 亚洲区在线播放| 精品无吗国产一区二区三区av| 人妻乱交手机在线播放| 亚洲av片无码久久五月| 999久久久国产精品| 91精品国产免费青青碰在线观看| 精品蜜桃av一区二区三区| 99精品国产一区二区三区| 在熟睡夫面前侵犯我在线播放| 人妻aⅴ无码一区二区三区| 91热视频在线观看| 中文字幕一区二区三区乱码人妻| 亚洲av无码乱码在线观看裸奔| 国产精品麻豆综合在线| 成年人男女啪啪网站视频| 男女啪啪在线视频网站| 蜜臀亚洲av无码精品国产午夜.| 乱码一二三入区口| 日本啪啪一区二区三区| 与漂亮的女邻居少妇好爽| 国产精品你懂的在线播放| 无码人妻AⅤ一区 二区 三区| 女人天堂av免费在线| 免费无码一区二区三区a片百度| 最新四色米奇影视777在线看| 毛片av在线尤物一区二区| 午夜秒播久久精品麻豆| 国产精品久久国产精品99 | 中文字幕人妻在线少妇完整版| 男女18禁啪啪无遮挡激烈网站| 少妇人妻偷人精品一区二区|