SpringMVC詳解——SSM三大框架整合之登錄功能實現
SpringMVC詳解——SSM三大框架整合之登錄功能實現
1、整合思路
①、表現層,也就是 Controller,由 SpringMVC 來控制,而SpringMVC 是Spring 的一個模塊,故不需要整合。
②、業務層,也就是 service,通常由 Spring 來管理 service 介面,我們會使用 xml 配置的方式來將 service 介面配置到 spring 配置文件中。而且事務控制一般也是在 service 層進行配置。
③、持久層,也就是 dao 層,而且包括實體類,由 MyBatis 來管理,通過 spring 來管理 mapper 介面,使用mapper的掃描器自動掃描mapper介面在spring中進行註冊。
很明顯,spring 在三大框架的整合中佔據至關重要的地位,類似於一個大管家,將 MyBatis 和 SpringMVC 揉合在一起。
2、準備環境
①、資料庫環境
資料庫類型:MySQL 5.1
資料庫名稱:ssm
數據表:user
②、開發工具 eclipse
③、JDK 1.7
④、mybatis 3.3
⑤、SpringMVC 4.2.4
⑥、Spring 4.2.4
⑦、資料庫連接池 dbcp1.2.2
⑧、資料庫驅動包mysql5.1.26
⑨、日誌 log4j 1.2
案例需求:輸入用戶名和密碼進行登錄驗證
具體的 jar 下載見上面的源碼下載鏈接!
項目的目錄結構為:
3、整合 Dao 層
也就是整合 MyBatis 和 Spring
①、在 db.properties 文件中,保存資料庫連接的基本信息
分別是資料庫連接池數據源,資料庫連接驅動,資料庫連接URL,資料庫連接用戶名,資料庫連接密碼
②、mybatis全局配置文件 mybatis-configuration.xml
通過 mapper 介面來載入映射文件,必須滿足下面四點:
1、xxxMapper 介面必須要和 xxxMapper.xml 文件同名且在同一個包下,也就是說 UserMapper.xml 文件中的namespace是UserMapper介面的全類名
2、xxxMapper介面中的方法名和 xxxMapper.xml 文件中定義的 id 一致
3、xxxMapper介面輸入參數類型要和 xxxMapper.xml 中定義的 parameterType 一致
4、xxxMapper介面返回數據類型要和 xxxMapper.xml 中定義的 resultType 一致
③、配置 Spring 文件
我們需要配置數據源、SqlSessionFactory以及mapper掃描器,由於這是對 Dao 層的整合,後面還有對於 業務層,表現層等的整合,為了使條目更加清新,我們新建 config/spring 文件夾,這裡將配置文件取名為 spring-dao.xml 放入其中。
spring-dao.xml
④、根據逆向工程生成 po 類以及 mapper 文件
如何使用逆向工程,可以參考這篇博客:http://www.cnblogs.com/ysocean/p/7360409.html,我們逆向工程要是一個額外的工程,生成我們所需的po類以及mapper文件後,在將其複製到我們當前項目中,如下:
由於我們這裡是進行登錄驗證,所以在 UserMapper.java 中添加如下代碼:
UserMapper.xml
dao 層整合完畢之後,我們進行一個測試,要養成每做完一個小模塊必須測試的習慣。步步為營,如果整個項目配置完了然後在進行測試,那麼有問題進行排除會變得很困難。
這裡是根據 user 表的 id 進行查詢。如果能列印出user對象的值,那麼前面的配置是 OK的。
4、整合 service
前面我們整理了,這層就是用 Spring 來管理 service 介面,我們會使用 xml 配置的方式來將 service 介面配置到 spring 配置文件中。而且事務控制也是在 service 層進行配置。
這裡我們以登錄
①、定義 service 介面
②、編寫 service 實現類
通過@Autowired向spring容器注入UserMapper,它會通過spring配的掃描器掃描到,並將對象裝載到spring容器中。
③、在spring容器中配置 Service 介面,這裡我們使用 xml 的方式
在 config/spring 目錄下,新建 spring-service.xml
④、在spring容器中配置 事務處理
在 config/spring 目錄下,新建 spring-transaction.xml
5、整合 SpringMVC
①、配置前端控制器
在 web.xml 文件中添加如下代碼:
②、配置處理器映射器、處理器適配器、視圖解析器
在 config/spring 目錄下新建 springmvc.xml文件
③、編寫 Handler,也就是 Controller
在 com.ys.controller 包下新建 UserController.java 文件
④、載入 Spring 容器
我們在 classpath/spring 目錄下新建了 spring-dao.xml,spring-service.xml,spring-transaction.xml 這些文件,裡面有我們配置的 mapper,controller,service,那麼如何將這些載入到 spring 容器中呢?
在 web.xml 文件中添加如下代碼:
由於配置文件比較多,我們使用通配符載入的方式。注意:這段代碼最好要加在前端控制器的前面。
至此 SSM 三大框架整合就完成了,接下來我們進行測試。
6、測試
在 WebContent 目錄下創建 login.jsp 頁面,以及 success.jsp頁面,如下圖:
login.jsp
success.jsp
1、將項目發布到 tomcat,如何發布可以參考這篇博客:http://www.cnblogs.com/ysocean/p/6893446.html
2、在瀏覽器輸入:http://localhost:8080/SSMDemo/login.jsp
點擊提交:
文章摘自博客園
更多乾貨推薦:
IT教育專業培訓:http://www.ujiuye.com/
IT職業在線教育:http://xue.ujiuye.com/
互聯網營銷集訓營:http://www.ujiuye.com/zt/java/?wt.bd=lsh11tt
※C 對可空值類型的支持
※SpringMVC詳解——基於註解的入門實例
※插入排序演算法之直接插入排序和希爾排序
※程序員的一天:不是在苦逼,就是在苦逼的路上
TAG:IT優就業 |
※獨立VRMMO『OrbusVR』登錄Oculus互玩
※NextVR登錄Viveport,可用HTC Vive觀看NBA比賽直播
※Bethesda結束與Steam合作?《輻射76》PC版將會是B社登錄器獨佔?
※太空對戰模擬遊戲End Space VR登錄Oculus Rift和HTC Vive
※韓式動作MMORPG《Triple S》開啟事前登錄
※C井調用Windows API實現自動登錄
※全新 UA Curry 5 「Welcome Home」 現已登錄各大平台,開啟預訂通道!
※PS4 Remote Play登錄iOS平台,你可以使用iPhone/iPad遠程玩PS4遊戲了
※繞過SQL Server的登錄觸發器限制
※PC端第一策略遊戲登錄iPhone / 蘋果開始調查iPhoneXS信號問題
※換裝遊戲《Alice Closet》事前登錄開始,PV公開
※最終幻想VII確認將會登錄Nintendo Switch
※iOS新功能,可使用Face ID或Touch ID登錄iCloud網頁端!
※「Overlord-MASS FOR THE DEAD-」延期上線,事前登錄數突破40萬
※Beat Saber的Expert+模式登錄PlayStation VR的時間推遲
※更加安全的登錄方式 macOS可能會使用Face ID登錄iCloud
※號稱VR版馬里奧卡丁車的《Sprint Vector》即將登錄PSVR平台。
※《白貓計劃》新企劃登錄NS,GBF×《LoveLive!Sunshine!》聯動決定
※Mac使用ssh密鑰登錄Linux
※Sonos Beam智能電視音響正式登錄中國