Spring-第三章
還原web專案的Test_Shop到Test_Shop_SM
Spring集成MyBatis

步驟
1. 添加Spring,MyBatis相關jar包
參見共享,\Test_Shop_SM\jars
2. 復制applicationContext.xml,修改部分命名空間

3. 測驗一個ProductService例子

回顧當前配置下的加載順序
1. MyBatis的主組態檔mybatis-config.xml 和 工具類MyBatisUtil
2. Mapper檔案
3. Dao介面
4. Service介面
5. Service實作
6. 測驗端
替代mybatis-config.xml 主組態檔的功能
使用Spring來集成該功能,Spring的IOC來替MyBatis生成工廠的特殊物件
創建資料連接,即資料源 取代
標簽組

創建工廠 取代
標簽組和MyBatisUtil 工具類

加載JDBC的組態檔 獨立組態檔

修改為動態引數

測驗列印 SqlSessionFactory

完成MyBatis物件的引入
版本1:
使用Spring IOC 創建dao物件,同時注入sqlSession配置

使用Spring IOC 創建service物件,并持有dao物件的參考

service層的實作類,持有dao物件的參考,并創建對應的set和get方法

完成ProductService的查詢例子
1. 檢查原 MyBatisUtil工具類,依靠代理創建的物件
2. 對比Spring IOC創建的物件
3. 兩者型別一致,說明Spring IOC創建的dao 物件
底層實作:SqlSession的MapperProxy代理實作
4. Spring-IOC 創建的sqlSessionFactory物件,會自動完成事務的提交和流的關閉
移除mybatis-config.xml 組態檔,MyBatisUtil工具類,及相關配置
版本2:
dao層的動態代理

1. 特殊類MapperScannerConfigurer根據value值,找到介面的包
2. 將該包下所有的介面類名,改為 標準的物件參考命名(駝峰命名)
3. 通過自動裝配byType,實作自動注入SqlSession物件
4. spring 容器中擁有這些 標準的物件參考名,可以直接被參考
5. 底層實作:SqlSession的MapperProxy代理實作
Service層的自動裝配
開啟注解掃描,掃描Service的介面層

Service實作類標注注解

Service自動裝配Dao物件,默認按照型別自動裝配productDao

不再需要productService的bean標簽和set/get方法了
Spring的專屬Junit

總結:
1. Dao層的物件創建的底層實作,是MyBatis框架下的SqlSession物件,依靠MapperProxy動態代理技術實作
2. Service層的物件創建的底層實作,是依賴Spring-IOC 的bean-id來創建,不管是顯示bean,還是自動裝配,再底層細致,就是反射+無參構造方法
3. 層與層之間都必須有需要有Spring bean 的定義(不管是顯示定義,還是隱藏定義)
4. 類與類之間的依賴 :
原始是通過在組態檔里寫明ref實作;
升級后,靠注釋自動裝配@Autowired實作,但是底層還是靠ref實作
5. Spring的發展是代碼和組態檔越來越簡潔,通用代碼被隱藏,但功能越來越強;
就像是社會的發展,原始是手工勞作,現在是機器自動化,
集成web
web.xml添加監聽,用來加載Spring的主組態檔

標準組態檔路徑
1. 將組態檔放入config檔案夾 (日志組態檔保留在根目錄)
2. 修改web.xml的監聽路徑
3. 修改applicationContext.xml的jdbc.properties路徑
4. 修改SpringJunit 的注解applicationContext.xml路徑
Test_Shop升級Spring架構
1. Spring集成MyBatis框架,洗掉mybatis-config.xml和MyBatisUtil.java
2. 修改Tesh_Shop_SM的業務邏輯層
3. 使用SpringJunit測驗所有業務邏輯層代碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/2479.html
標籤:Oracle
上一篇:了解Spring
下一篇:SpringMVC
