5.Spring、MyBatis和SpringMVC的整合

前面給大家分享了SpringMVC中基於註解和非註解的映射,今天來跟大家分享一下如何去整合SSM框架。
我們不用maven,爲什麼呢?主要是幫助大家更好的理解有哪些包,這樣更加透徹。當然了,使用maven會更方便一點。

1. jar包管理

在這裏插入圖片描述

2. 整合思路

spring在進行管理時,是很有條理的,每個層都由spring管理,然後不同的層可以調用其它層,Handler調用service,service調用mapper等。根據這個架構,我們來總結一下整合的思路,根據這個調用關係,我們可以從下往上一步步整合。

1. 整合dao層。mybatis和spring整合,通過spring管理mapper接口。 
使用mapper的掃描器自動掃描mapper接口在spring中進行註冊。
2. 整合service層。通過spring管理 service接口。 
使用配置方式將service接口配置在spring配置文件中。 
實現事務控制。
3. 整合springmvc。由於springmvc是spring的模塊,不需要整合。

現在思路清晰了,接下來就開始整合了。在整合前先看一下我整合完的工程結構。
在這裏插入圖片描述

3. 整合dao層

整合dao層也就是整合持久層,那麼需要spring的核心包,持久層包,mybatis包,數據庫以及連接池的包。所以將spring-persistence/spring-core/mysql-connector/mybatis/dbcp幾個文件夾中的jar包拷貝到lib中。

mybatis全局配置文件
在這裏插入圖片描述
可以看出,整合的時候,這個全局配置文件已經很清爽了,基本沒啥東東了,因爲數據源啊、mapper啊啥的都交給spring去管理了。

配置Spring配置文件

配置完了mybatis的全局配置文件後,接下來就要配置spring的配置文件了,spring的配置文件我將分類寫在不同的文件中,都放在config/spring/目錄下了,這裏是對dao的整合,所以起名applicationContext-dao.xml。
在這裏插入圖片描述
可以看出,整合dao層的時候主要配置一下數據源、sqlSessionFactory和mapper掃描器,這樣的話,數據源,sqlSessionFactory和mapper在tomcat啓動時就被spring實例化到了容器中。接下來就是準備po類及mapper了。

逆向工程生成po和mapper,使用逆向工程生成的代碼如下:
在這裏插入圖片描述

3. 整合Service層

之前提到過,service是用來調用mapper的,mapper是用來操作數據庫的,其實上面的小插曲中的測試代碼就有點類似service層做的事,先獲取mapper接口的代理對象,然後操作數據庫。

所以在service層,我們首先要獲取mapper接口的代理對象,只不過在這裏我們通過spring注入進來,然後通過這個代理對象去操作數據庫。下面看一下整個整合的步驟:

先寫Service接口
在這裏插入圖片描述
可以看出,這個接口和上面那個mapper接口其實是一樣的,當然並不是說一定一樣,只不過這裏要實現的邏輯都一樣而已。

Service實現類
在這裏插入圖片描述
可以看出,實現類中是通過@Autowired注入itemsMapperCustom,這個itemsMapperCustom是上面那個插曲中定義的一個mapper。

它會通過spring配的掃描器掃描到,並將對象裝到spring容器中,然後在這注入進來,然後調用findItemsList方法來操作數據庫。至於itemQueyVo,實際中,是將前臺傳來的數據封裝進來,然後傳進來的。這樣就打通了service與dao之間的通道了。

配置applicationContext-service.xml
在這裏插入圖片描述
配置applicationContext-transaction.xml
在這裏插入圖片描述

4. 整合springmvc

配置前端控制器
在這裏插入圖片描述
配置處理器映射器、處理器適配器和視圖解析器
在這裏插入圖片描述
加在spring容器

在web.xml中添加spring容器監聽器,加載spring容器。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章