Java EE輕量級(jí)框架應(yīng)用實(shí)戰(zhàn)-SSM框架(Spring MVC+Spring+MyBatis)(第2版)課件 第13章 SSM框架整合_第1頁
Java EE輕量級(jí)框架應(yīng)用實(shí)戰(zhàn)-SSM框架(Spring MVC+Spring+MyBatis)(第2版)課件 第13章 SSM框架整合_第2頁
Java EE輕量級(jí)框架應(yīng)用實(shí)戰(zhàn)-SSM框架(Spring MVC+Spring+MyBatis)(第2版)課件 第13章 SSM框架整合_第3頁
Java EE輕量級(jí)框架應(yīng)用實(shí)戰(zhàn)-SSM框架(Spring MVC+Spring+MyBatis)(第2版)課件 第13章 SSM框架整合_第4頁
Java EE輕量級(jí)框架應(yīng)用實(shí)戰(zhàn)-SSM框架(Spring MVC+Spring+MyBatis)(第2版)課件 第13章 SSM框架整合_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

SSM框架整合思路XML文件整合SSM框架純注解整合SSM框架第13章

SSM框架整合2024/1/29學(xué)習(xí)目標(biāo)/Target了解SSM框架的整合思路

熟悉SSM框架整合時(shí)的配置文件內(nèi)容掌握SSM框架整合應(yīng)用程序的編寫2章節(jié)概述/Summary對(duì)于JavaEE應(yīng)用程序的開發(fā),行業(yè)中提供了非常多的技術(shù)框架,但是不管如何進(jìn)行技術(shù)選型,JavaEE應(yīng)用都可以分為表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層,當(dāng)前,這3個(gè)層的主流框架分別是SpringMVC、Spring和MyBatis,簡(jiǎn)稱為SSM框架,JavaEE應(yīng)用程序也經(jīng)常通過整合這3大框架來完成開發(fā)。SSM框架的整合有多種方式,本章將對(duì)常用的整合方式和純注解的整合方式來對(duì)SSM框架的整合進(jìn)行講解。3目錄/CONTENTSSSM框架整合思路純注解整合SSM框架XML文件整合SSM框架1324SSM框架整合思路01第13章SSM框架整合如何進(jìn)行SSM框架整合?整合思路

由于SpringMVC是Spring框架中的一個(gè)模塊,所以SpringMVC與Spring之間不存在整合的問題,只要引入相應(yīng)JAR包就可以直接使用。因此SSM框架的整合就只涉及到了Spring與MyBatis的整合,以及SpringMVC與MyBatis的整合。6SSM框架整合時(shí)三層架構(gòu)的分工

進(jìn)行SSM框架整合時(shí),3個(gè)框架的分工如下所示。

MyBatis負(fù)責(zé)與數(shù)據(jù)庫進(jìn)行交互。

Spring負(fù)責(zé)事務(wù)管理,Spring可以管理持久層的Mapper對(duì)象及業(yè)務(wù)層的Service對(duì)象。由于Mapper對(duì)象和Service對(duì)象都在Spring容器中,所以可以在業(yè)務(wù)邏輯層通過Service對(duì)象調(diào)用持久層的Mapper對(duì)象。

SpringMVC負(fù)責(zé)管理表現(xiàn)層的Handler。SpringMVC容器是Spring容器的子容器,因此SpringMVC容器可以調(diào)用Spring容器中的Service對(duì)象。

整合思路7整合思路SSM框架整合圖如下所示:

在前面講解Spring與MyBatis框架的整合時(shí),我們是通過Spring實(shí)例化Bean,然后調(diào)用實(shí)例對(duì)象中的查詢方法來執(zhí)行MyBatis映射文件中的SQL語句的,如果能夠正確查詢出數(shù)據(jù)庫中的數(shù)據(jù),那么我們就認(rèn)為Spring與MyBatis框架整合成功。同樣,整合之后,如果我們可以通過前臺(tái)頁面來執(zhí)行查詢方法,并且查詢出的數(shù)據(jù)能夠在頁面中正確顯示,那么我們也可以認(rèn)為三大框架整合成功。如何確定SSM框架整合成功?8SSM框架整合系統(tǒng)架構(gòu)設(shè)計(jì)SSMORM:MyBatis框架SpringCore:基于IoC和AOP的處理方式統(tǒng)一管理所有的JavaBeanWeb框架:SpringMVC數(shù)據(jù)存儲(chǔ):MySQL前端框架:JSPjQuery框架HTML5、CSS39XML文件

整合SSM框架02第13章SSM框架整合SSM框架整合實(shí)現(xiàn)思路

下面通過一個(gè)用戶信息查詢案例來描述SSM框架的整合,案例實(shí)現(xiàn)思路如下。

搭建項(xiàng)目基礎(chǔ)結(jié)構(gòu)。首先需要在數(shù)據(jù)庫中搭建項(xiàng)目對(duì)應(yīng)的數(shù)據(jù)庫環(huán)境;然后創(chuàng)建一個(gè)MavenWeb項(xiàng)目,并引入案例所需的依賴;最后創(chuàng)建項(xiàng)目的實(shí)體類,創(chuàng)建三層架構(gòu)對(duì)應(yīng)的模塊、類和接口。

整合Spring和MyBatis。在Spring配置文件中配置數(shù)據(jù)源信息,并且將SqlSessionFactory對(duì)象和Mapper對(duì)象都交由Spring管理。

整合Spring和SpringMVC。SpringMVC是Spring框架中的一個(gè)模塊,所以Spring整合SpringMVC只需在項(xiàng)目啟動(dòng)時(shí)分別加載各自的配置即可。整合思路11搭建項(xiàng)目基礎(chǔ)結(jié)構(gòu)12步驟1搭建數(shù)據(jù)庫環(huán)境步驟2引入項(xiàng)目依賴步驟3創(chuàng)建實(shí)體類步驟4創(chuàng)建三層架構(gòu)對(duì)應(yīng)模塊的類和接口STEP01STEP02STEP03STEP04(1)Spring相關(guān)依賴。spring-context:Spring上下文;spring-tx:Spring事務(wù)管理;spring-jdbc:SpringJDBC;spring-test:Spring單元測(cè)試;spring-webmvc:SpringMVC核心。(2)MyBatis相關(guān)依賴。mybatis:MyBatis核心;(3)MyBatis與Spring整合包。mybatis-spring:MyBatis與Spring整合。

(4)數(shù)據(jù)源相關(guān)。druid:阿里提供的數(shù)據(jù)庫連接池。(5)單元測(cè)試相關(guān)的依賴。junit:單元測(cè)試,與spring-test放在一起做單元測(cè)試。(6)ServletAPI相關(guān)的依賴。jsp-api:jsp頁面使用request等對(duì)象;servlet-api:java文件使用request等對(duì)象。(7)數(shù)據(jù)庫相關(guān)的依賴。mysql-connector-java:mysql的數(shù)據(jù)庫驅(qū)動(dòng)包。

引入項(xiàng)目依賴13

Spring和MyBatis的整合可以分為2步來完成,首先搭建Spring環(huán)境,然后整合MyBatis到Spring環(huán)境中??蚣墉h(huán)境包含框架對(duì)應(yīng)的依賴和配置文件,其中Spring的依賴、MyBatis的依賴、Spring和MyBatis整合的依賴,在項(xiàng)目基礎(chǔ)結(jié)構(gòu)搭建時(shí)候已經(jīng)引入到項(xiàng)目中了,接下來,只需編寫Spring的配置文件、Spring和MyBatis整合的配置文件即可。

整合Spring和MyBatis14步驟1

Spring的配置文件步驟2

Spring和MyBatis整合的配置步驟3整合測(cè)試STEP01STEP02STEP03Spring的配置文件

在項(xiàng)目的src\main\resources目錄下創(chuàng)建配置文件application-service.xml,用于配置Spring對(duì)Service層的掃描信息。application-service.xml具體代碼如下所示。

<beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"...><!--開啟注解掃描,掃描包--><context:component-scanbase-package="cn.dsscm.service"/></beans>整合Spring和MyBatis15Spring和MyBatis整合的配置

Spring和MyBatis的整合包中提供了一個(gè)SqlSessionFactoryBean對(duì)象,該對(duì)象的Bean需要注入數(shù)據(jù)源,也可以根據(jù)需求在SqlSessionFactoryBean的Bean中配置MyBatis核心文件路徑、別名映射和Mapper映射文件路徑。在項(xiàng)目的src\main\resources目錄下創(chuàng)建數(shù)據(jù)源屬性文件perties,perties配置的數(shù)據(jù)源信息如下所示。

jdbc.driverClassName=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghaijdbc.username=rootjdbc.password=123456整合Spring和MyBatis16整合測(cè)試在項(xiàng)目的src\main\test目錄下的java文件夾中,創(chuàng)建測(cè)試類,用于對(duì)Spring和MyBatis的整合進(jìn)行測(cè)試。

@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:application-service.xml","classpath:application-dao.xml"})publicclassUserServiceTest{ @Autowired privateUserServiceuserService; @Test publicvoidfindUserById(){ Useruser=userService.findUserById(1); System.out.println(user); }}整合Spring和MyBatis17結(jié)果測(cè)試運(yùn)行測(cè)試方法findUserById(),方法運(yùn)行后控制臺(tái)打印信息如圖所示。整合Spring和MyBatis18從圖中的信息可以看出,程序輸出了id為1的用戶信息。這表明測(cè)試類中成功裝配了UserService對(duì)象,UserService對(duì)象成功調(diào)用Service層的findUserById()方法,Service層的findUserById()方法成功調(diào)用Dao層的findUserById()方法完成了數(shù)據(jù)查詢,說明Spring和MyBatis已經(jīng)整合成功。Spring的配置

之前Spring和MyBatis整合時(shí),已經(jīng)完成了Spring的配置文件,Spring和SpringMVC整合,只需在項(xiàng)目啟動(dòng)時(shí)加載Spring容器和Spring的配置文件即可。在項(xiàng)目的web.xml文件中配置Spring的監(jiān)聽器來加載Spring容器及Spring的配置文件,具體配置如下所示。

<context-param>

<param-name>contextConfigLocation</param-name><param-value>classpath:application-*.xml</param-value></context-param><listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>整合Spring和SpringMVC19Spring

MVC的配置

本案例主要測(cè)試SSM整合的情況,因此在SpringMVC的配置文件中只配置SSM整合案例必須的配置。必須配置的項(xiàng)有以下2個(gè)。

配置包掃描,指定需要掃描到SpringMVC中的Controller層所在的包路徑。

配置注解驅(qū)動(dòng),讓項(xiàng)目啟動(dòng)時(shí)啟用注解驅(qū)動(dòng),并且自動(dòng)注冊(cè)HandlerMapping和HandlerAdapter。

在項(xiàng)目的src\main\resources目錄下創(chuàng)建SpringMVC的配置文件spring-mvc.xml。Spring-mvc.xml文件配置完成之后,在web.xml中配置SpringMVC的前端控制器,并在初始化前端控制器時(shí)加載SpringMVC的配置文件。

整合Spring和SpringMVC20SSM框架整合測(cè)試接下來,通過在頁面查詢用戶信息來測(cè)試SSM框架的整合情況。在項(xiàng)目的src/main/webapp目錄下創(chuàng)建名稱為user的JSP文件,用于展示處理器返回的用戶信息。….<tableclass="tabletable-hover"><thead><tr><th>用戶編號(hào)</th><th>用戶姓名</th><th>用戶編碼</th><th>生日</th><th>性別</th></tr></thead><tbody><tr><td>${user.id}</td><td>${user.userName}</td><td>${user.userCode}</td><td>${user.birthday}</td><td>${user.gender}</td></tr></tbody></table>……整合Spring和SpringMVC21結(jié)果測(cè)試將項(xiàng)目部署到Tomcat中,啟動(dòng)項(xiàng)目,在瀏覽器中訪問地址http://localhost:8888/user?id=1來進(jìn)行用戶查詢,頁面顯示效果如圖所示。整合Spring和SpringMVC22從圖中所示的信息可以看出,程序成功查詢到了id為1的用戶信息。這表明Controller層成功將Service層獲取的用戶信息返回給頁面,由此說明SSM框架整合成功。純注解

整合SSM框架03第13章SSM框架整合application-dao.xml

application-dao.xml配置文件中配置的內(nèi)容包含以下4項(xiàng)。

讀取perties文件中的數(shù)據(jù)連接信息。

創(chuàng)建Druid對(duì)象,并將讀取的數(shù)據(jù)連接信息注入到Druid數(shù)據(jù)連接池對(duì)象中。

創(chuàng)建SqlSessionFactoryBean對(duì)象,將并將Druid對(duì)象注入到SqlSessionFactoryBean對(duì)象中。

創(chuàng)建MapperScannerConfigurer對(duì)象,并指定掃描的Mapper的路徑。

整合思路

24application-service.xml和spring-mvc.xml

application-service.xml配置文件中只配置了包掃描,指定需要掃描到Spring的Service層所在的包路徑。spring-mvc.xml配置文件中配置了SpringMVC掃描的包路徑和注解驅(qū)動(dòng)。

整合思路

25web.xml

web.xml配置文件配置了項(xiàng)目啟動(dòng)時(shí)加載的信息,包含如下3個(gè)內(nèi)容。

使用<context-param>元素加載Spring配置文件application-service.xml和Spring整合Mybatis的配置文件application-dao.xml。Spring容器加載監(jiān)聽器。

配置SpringMVC的前端控制器。整合思路

26純注解SSM框架整合27步驟1編輯JdbcConfig.java步驟2編輯MyBatisConfig.java步驟3編輯SpringConfig.java步驟4編輯SpringMvcConfig.java步驟5編輯ServletContainersInitConfig步驟6

SSM框架整合測(cè)試STEP01STEP02STEP03STEP04STEP05STEP0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論