寫在前面的話:項目copy下來後,直接用idea導入應該是沒有問題的(項目的文件夾和包結構要正確),根據你的需要修改pom中的mysql驅動和數據庫資源文件後就可以部署到tomcat運行了!
CRM客戶管理系統( spring + springMVC + mybatis )
使用SSM對原項目進行了升級
- 由於spring-mybatis和spring-tx已經保證了sqlsession的線程安全和事務處理,故取消了動態代理和事務回滾等相關的工具類,同時spring-mybatis已經使用動態代理和反射實現了Dao層,在業務中直接注入Dao層即可;
- 使用@ControllerAdvice的增強控制器類GlobalExceptionResolver能夠捕獲所有普通控制器的異常,並將相關異常信息按原請求路徑返回;
- 在業務層和控制層大量使用spring註解,簡化開發的同時,極大地減少了代碼的耦合和冗餘,體現了spring的IOC和依賴注入思想;
- 這裡沒有使用spring攔截器的原因是:spring攔截器只攔截@Controller註解的類,而不會去攔截jsp,因此spring提倡把jsp文件放到WEB-INF文件夾下,所以這裡使用原版servlet過濾器;
- WebApplicationContextUtils可以非常方便的從servlet容器中取出spring容器;
- 把一些不會重複創建的對象(有點單例的意思)的配置寫在spring的配置文件中是典型的IOC思想, 當然也可以不用配置文件轉而使用配置類;
- 這裡需要在mybatis的配置文件中進行相關配置後才能輸出mybatis日誌;
- 基於SSM的測試類也要進行相關配置,這與spring容器密不可分,好在有相關依賴支持這一配置,這種情況在spingboot裡好很多,springboot幾乎是一氣呵成的;
- 雖然前端使用了JSTL和EL表達式甚至使用了java腳本,但仍是前後端不分離的項目,開發中會明顯感覺到前端開發比後端費勁,這也是我們倡導前後端分離的原因之一,Vue與springbooot的結合能明顯緩解這種差別;
- 總的來說,整個項目是一個非常好的項目,從深入MVC思想到前後端到數據庫的一些細節都講的很不錯,遺憾的是沒有涉及到spring-AOP的使用(因為項目總體不需要這個,如果硬要用可以自己做日誌),雖然還有些公司還在用SSM,但當今spring的主流是springboot+各種中間件和應用層,現在學習SSM的主要好處就是能夠了解部分spring的底層和思想,因為springMVC簡化了servlet,springboot又簡化springMVC,springboot功能的強大就是對底層的各種封裝。好了不廢話了,整個項目從搭環境到最後的Echarts差不多花了21天,每天平均差不多4個小時(日常瑣事還有學新的東西的時間就不算進去了),SSM是去年跟著王鶴老師(挺不錯一老師)學的,他的課件起了很大作用。整個項目中有很多問題都是後知後覺的,比如說控制層接收前端參數那裡,有很多種接法,也是到最後我才知道“哦,還可以這麼用...”。最後的最後,整個項目相當於三分之一原創項目吧,核心開發思想是老師的,我不過是用SSM和一些我的思想去完善他,由於是重在學習,項目中難免出現一些命名、路徑等等的小問題,好在最後不影響大體的使用。好了,讓我們在下一個springboot分佈式項目再見吧! (以上所述,如果有些許不妥,歡迎各位斧正!)”
注:做完“市場活動“模塊的同學肯定會發現剩下的業務需要重寫大量的增刪改查非常麻煩,不寫的話就是學老師一樣往數據庫裡直接寫數據(我覺得非常難受),所以我旨在針對核心業務的實現,把最能展現出核心業務實現過程的增刪改查寫了。因為需要部署到服務器供大家操作,所以我又刪除了前端所有用不到的控件和頁面,整個項目非常清爽,只留下來核心業務。
動力節點線下資料
嗶哩嗶哩在線課程




