SSM框架 | 袁庭新老師手把手帶你實(shí)現(xiàn)Spring+SpringMVC+MyBatis框架整合
我們已經(jīng)學(xué)習(xí)了Spring、SpringMVC和MyBatis框架,那么這三個(gè)框架如何結(jié)合在一塊兒使用呢?首先,需要將者三個(gè)框架進(jìn)行整合。那么,袁老師就給大家安排上。本節(jié)袁老師將給大家介紹SSM框架的整合流程,并帶大家最終完成Web應(yīng)用程序的開發(fā)。袁老師保證,只要你認(rèn)真看完,肯定會(huì)有斬獲哦。

01?項(xiàng)目環(huán)境搭建
1.1?搭建項(xiàng)目結(jié)構(gòu)
首先我們要選擇【Java Enterprise】選項(xiàng),將項(xiàng)?名稱設(shè)置為ssm-integration。項(xiàng)?的GAV坐標(biāo)中GroupId的值設(shè)置為com.cy.ssm,Artfact選項(xiàng)的值設(shè)置為controller,并將Project template選項(xiàng)的值設(shè)置成Web application,其他保持默認(rèn)。
然后要將項(xiàng)?com.cy.controller包下?動(dòng)?成的HelloServlet類刪除,并將webapp?件夾下?動(dòng)?成的index.jsp?件刪除。
之后在項(xiàng)目的com.cy.ssm包下創(chuàng)建pojo、mapper、service、service.impl、controller的包結(jié)構(gòu)。

最后就可以在webapp目錄下創(chuàng)建css、img、js等文件夾,并在WEB-INF目錄下創(chuàng)建pages文件夾了。
1.2?配置Tomcat
我們可以在IDEA窗口的右上角點(diǎn)擊【Add Configurations】按鈕,打開Run/Debug Configurations窗口。
接著在Run/Debug Configurations窗口中點(diǎn)擊【+】號(hào),選擇Tomcat Server選項(xiàng)下的Local選項(xiàng)。點(diǎn)擊右下角的【Fix】選項(xiàng)。

然后在Deployment選項(xiàng)下點(diǎn)擊【+】號(hào)按鈕,選擇【Artifact】選項(xiàng),在新打開的窗口中選擇【ssm-integration:war expolded】選項(xiàng)。

最后啟動(dòng)Tomcat服務(wù)器,訪問(wèn)下面地址,進(jìn)行初始化環(huán)境測(cè)試。
1.3?添加SSM依賴
修改pom.xml文件,首先將編譯版本改為11版本(根據(jù)安裝的JDK版本來(lái)確定配置的編譯版本)。
在pom.xml文件中添加SSM框架所需的相關(guān)依賴配置。
02?Spring環(huán)境搭建
下面先跟袁老師來(lái)搭建Spring環(huán)境,主要是Spring配置以及Spring環(huán)境測(cè)試,最后我們?cè)倥渲胠og4j日志。
2.1?Spring配置
在resources目錄下,創(chuàng)建applicationContext.xml配置文件。
在web.xml配置文件中添加在Web容器啟動(dòng)時(shí)就加載Spring的核心配置文件applicationContext.xml。
2.2?Spring容器整合技巧
1.整合思路
此時(shí)項(xiàng)目中有兩個(gè)工廠:
DispatcherServlet啟動(dòng)的SpringMVC工廠,負(fù)責(zé)生產(chǎn)Controller及SpringMVC自己的系統(tǒng)組件。
ContextLoaderListener啟動(dòng)的Spring工廠,負(fù)責(zé)生產(chǎn)其他所有組件。
SpringMVC的工廠會(huì)被設(shè)置為Spring工廠的子工廠,可以隨意獲取Spring工廠中的組件。
整合過(guò)程,就是累加:代碼+依賴+配置。然后將Service注入給Controller即可。
2.整合技巧實(shí)現(xiàn)
兩個(gè)工廠不能有彼此侵入,即生產(chǎn)的組件不能有重合。在applicationContext.xml文件中添加開啟組件掃描的配置。
2.3?Spring環(huán)境測(cè)試
在src/test/java包下創(chuàng)建com.cy.ssm包,并在該包下創(chuàng)建SpringTests測(cè)試類,測(cè)試Spring的環(huán)境是否正常。
2.4?log4j配置
在運(yùn)行上述testSpring()單元測(cè)試時(shí),控制臺(tái)會(huì)提示log4j:WARN的警告信息。
在項(xiàng)目的resources文件夾下創(chuàng)建log4j.properties文件,并在log4j.properties文件中添加log4j日志的配置信息,這一步的前提是需要導(dǎo)入log4j的依賴。
03?Spring整合MyBatis
3.1?MyBatis配置
1.MyBatis核心配置文件
在src/main/resources目錄下,創(chuàng)建MyBatis的核心配置文件mybatis-config.xml。
在mybatis-config.xml配置文件中開啟駝峰映射和二級(jí)緩存。
2.MyBatis數(shù)據(jù)源文件
在src/main/resources目錄下創(chuàng)建mappers文件夾,將來(lái)用于存放MyBatis的映射文件。在src/main/resources目錄下創(chuàng)建jdbc.properties數(shù)據(jù)源文件。
注意:在jdbc.properties配置文件中數(shù)據(jù)庫(kù)的連接名不能使用username的屬性名,否則會(huì)報(bào)錯(cuò)。因此在數(shù)據(jù)源文件中添加固定前綴以區(qū)分。
3.2?Spring整合MyBatis實(shí)現(xiàn)
1.Druid連接池配置
在applicationContext.xml配置文件中添加MyBatis框架的整合以及配置事務(wù)控制。
2.Druid監(jiān)控中心配置
在當(dāng)前的項(xiàng)目的web.xml文件中添加Druid的StatViewServlet組件的配置。
測(cè)試Druid監(jiān)控中心。訪問(wèn)以下地址進(jìn)行測(cè)試。
Druid訪問(wèn)的語(yǔ)法url格式:http://ip:port/project/druid/index.html

3.3?整合MyBatis
1.導(dǎo)入依賴
在pom.xml文件中導(dǎo)入spring-jdbc和mybatis-spring依賴。
2.配置SqlSessionFactoryBean
在applicationContext.xml核心配置文件中配置SqlSessionFactoryBean工廠。
3.配置MapperScannerConfigurer
在applicationContext.xml文件中添加Mapper掃描器MapperScannerConfigurer的配置。作用是:管理Mapper實(shí)現(xiàn)類的創(chuàng)建,并創(chuàng)建Mapper對(duì)象,存入工廠管理。
掃描所有Mapper接口,去構(gòu)建Mapper實(shí)現(xiàn)。
將Mapper實(shí)現(xiàn)存入工廠管理。
Mapper實(shí)現(xiàn)對(duì)象在工廠中的id是:“首字母小寫的接口的類名”。
說(shuō)明:MapperScannerConfigurer類是Spring框架和MyBatis框架整合時(shí)mybatis-spring依賴提供的一個(gè)類。其作用是自動(dòng)掃描,將Mapper接口生成代理注入到Spring容器中。
4.配置DataSourceTransactionManager
在applicationContext.xml文件中配置事務(wù)管理器。事務(wù)管理器其中持有DataSource對(duì)象,可以控制事務(wù)功能(commit和rollback等)。
注意:DataSourceTransactionManager和SqlSessionFactoryBean要注入同一個(gè)DataSource的Bean,否則事務(wù)控制失敗。
5.配置事務(wù)通知
基于事務(wù)管理器進(jìn)一步定制,生成一個(gè)額外功能Advice。此Advice可以切入任何需要事務(wù)的方法,通過(guò)事務(wù)管理器為方法控制事務(wù)。我們可以在applicationContext.xml文件中配置事務(wù)規(guī)則和AOP切面。
3.4?MyBatis環(huán)境測(cè)試
在src/test/java下的com.cy.ssm包下創(chuàng)建MyBatisTests測(cè)試類,測(cè)試MyBatis的環(huán)境是否正常。
注意:獲取的org.mybatis.spring.SqlSessionFactoryBean類型的對(duì)象需要使用SqlSessionFactory類型來(lái)接收。否則會(huì)拋出類型轉(zhuǎn)化異常,具體見下:
04?SpringMVC整合
4.1?SpringMVC配置
在resources目錄下創(chuàng)建springmvc-servlet.xml配置文件,并在文件中添加SpringMVC的相關(guān)配置。
在web.xml文件中添加SpringMVC框架的前端控制器的配置,以及字符編碼過(guò)濾器的配置和服務(wù)器啟動(dòng)頁(yè)的配置。
4.2?SpringMVC環(huán)境測(cè)試
在controller包下創(chuàng)建TestController類,并添加處理test請(qǐng)求的處理方法。
啟動(dòng)Tomcat服務(wù)器,訪問(wèn)如下地址進(jìn)行測(cè)試。
響應(yīng)結(jié)果見下:
05?SSM架構(gòu)總結(jié)
通過(guò)以上關(guān)于SSM框架的介紹,相信通過(guò)對(duì)SSM框架的整合流程有了很深入的了解。在Spring+SpringMVC+MyBatis架構(gòu)下,框架之間的職責(zé)分工見下圖:

通過(guò)上圖的分析,是不是對(duì)SSM框架負(fù)責(zé)的模塊理解的更加深刻了。這篇文章我們主要介紹了Spring環(huán)境的大家,以及如何使用Spring整合MyBatis框架和SpringMVC框架的整合。通過(guò)以上內(nèi)容的學(xué)習(xí),相信各位小伙伴一定可以自行搭建起SSM框架的架構(gòu)環(huán)境。好了,關(guān)于SSM框架的搭建內(nèi)容袁老師就給大家介紹到這里。