SSM框架:SpringMVC + Spring + MyBatis

原文鏈接:https://blog.csdn.net/qq598535550/article/details/51703190

在寫代碼之前我們先了解一下這三個框架分別是幹什麼的?
相信大以前也看過不少這些概念,我這就用大白話來講,如果之前有了解過可以跳過這一大段,直接看代碼!

SpringMVC:它用於web層,相當於controller(等價於傳統的servlet和struts的action),用來處理用戶請求。舉個例子,用戶在地址欄輸入http://網站域名/login,那麼springmvc就會攔截到這個請求,並且調用controller層中相應的方法,(中間可能包含驗證用戶名和密碼的業務邏輯,以及查詢數據庫操作,但這些都不是springmvc的職責),最終把結果返回給用戶,並且返回相應的頁面(當然也可以只返回json/xml等格式數據)。springmvc就是做前面和後面過程的活,與用戶打交道!!

Spring:太強大了,以至於我無法用一個詞或一句話來概括它。但與我們平時開發接觸最多的估計就是IOC容器,它可以裝載bean(也就是我們java中的類,當然也包括service dao裏面的),有了這個機制,我們就不用在每次使用這個類的時候爲它初始化,很少看到關鍵字new。另外spring的aop,事務管理等等都是我們經常用到的。

MyBatis:如果你問我它跟鼎鼎大名的Hibernate有什麼區別?我只想說,他更符合我的需求。第一,它能自由控制sql,這會讓有數據庫經驗的人(當然不是說我啦捂臉)編寫的代碼能搞提升數據庫訪問的效率。第二,它可以使用xml的方式來組織管理我們的sql,因爲一般程序出錯很多情況下是sql出錯,別人接手代碼後能快速找到出錯地方,甚至可以優化原來寫的sql。

SSM框架整合配置
好了,前面bb那麼多,下面我們真正開始敲代碼了~

首先我們打開IED,我這裏用的是eclipse(你們應該也是用的這個,對嗎?),創建一個動態web項目,建立好相應的目錄結構(重點!)

(打了馬賽克是因爲這裏還用不到,你們不要那麼污好不好?)

我說一下每個目錄都有什麼用吧(第一次畫表格,我發現markdown的表格語法很不友好呀~)
這個目錄結構同時也遵循maven的目錄規範~

文件名    作用
src    根目錄,沒什麼好說的,下面有main和test。
- main    主要目錄,可以放java代碼和一些資源文件。
- - java    存放我們的java代碼,這個文件夾要使用Build Path -> Use as Source Folder,這樣看包結構會方便很多,新建的包就相當於在這裏新建文件夾咯。
- - resources    存放資源文件,譬如各種的spring,mybatis,log配置文件。
- - - mapper    存放dao中每個方法對應的sql,在這裏配置,無需寫daoImpl。
- - - spring    這裏當然是存放spring相關的配置文件,有dao service web三層。
- - - sql    其實這個可以沒有,但是爲了項目完整性還是加上吧。
- - - webapp    這個貌似是最熟悉的目錄了,用來存放我們前端的靜態資源,如jsp js css。
- - - - resources    這裏的資源是指項目的靜態資源,如js css images等。
- - - - WEB-INF    很重要的一個目錄,外部瀏覽器無法訪問,只有羨慕內部才能訪問,可以把jsp放在這裏,另外就是web.xml了。你可能有疑問了,爲什麼上面java中的resources裏面的配置文件不妨在這裏,那麼是不是會被外部竊取到?你想太多了,部署時候基本上只有webapp裏的會直接輸出到根目錄,其他都會放入WEB-INF裏面,項目內部依然可以使用classpath:XXX來訪問,好像IDE裏可以設置部署輸出目錄,這裏扯遠了~
- test    這裏是測試分支。
- - java    測試java代碼,應遵循包名相同的原則,這個文件夾同樣要使用Build Path -> Use as Source Folder,這樣看包結構會方便很多。
- - resources    沒什麼好說的,好像也很少用到,但這個是maven的規範。
我先新建好幾個必要的包,併爲大家講解一下每個包的作用,順便理清一下後臺的思路~

包名    名稱    作用
dao    數據訪問層(接口)    與數據打交道,可以是數據庫操作,也可以是文件讀寫操作,甚至是redis緩存操作,總之與數據操作有關的都放在這裏,也有人叫做dal或者數據持久層都差不多意思。爲什麼沒有daoImpl,因爲我們用的是mybatis,所以可以直接在配置文件中實現接口的每個方法。
entity    實體類    一般與數據庫的表相對應,封裝dao層取出來的數據爲一個對象,也就是我們常說的pojo,一般只在dao層與service層之間傳輸。
dto    數據傳輸層    剛學框架的人可能不明白這個有什麼用,其實就是用於service層與web層之間傳輸,爲什麼不直接用entity(pojo)?其實在實際開發中發現,很多時間一個entity並不能滿足我們的業務需求,可能呈現給用戶的信息十分之多,這時候就有了dto,也相當於vo,記住一定不要把這個混雜在entity裏面,答應我好嗎?
service    業務邏輯(接口)    寫我們的業務邏輯,也有人叫bll,在設計業務接口時候應該站在“使用者”的角度。額,不要問我爲什麼這裏沒顯示!IDE調皮我也拿它沒辦法~
serviceImpl    業務邏輯(實現)    實現我們業務接口,一般事務控制是寫在這裏,沒什麼好說的。
web    控制器    springmvc就是在這裏發揮作用的,一般人叫做controller控制器,相當於struts中的action。
還有最後一步基礎工作,導入我們相應的jar包,我使用的是maven來管理我們的jar,所以只需要在pom.xml中加入相應的依賴就好了,如果不使用maven的可以自己去官網下載相應的jar,放到項目WEB-INF/lib目錄下。
————————————————
版權聲明:本文爲CSDN博主「李奕鋒」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq598535550/article/details/51703190

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