樓主工做一年了,整整一年了,轉行整整一年了,各類積累,今天就把個人ssm框架心得體會告訴須要的朋友們一下:前端
樓主所接觸到的目前除了微服務的springboot框架以外,最火的就是ssm框架了,爲何?java
一、spring的IOC依賴注入爲咱們省去了new對象的時間,也幫咱們節省了不少的內存空間,還有他的事務管理transaction和AOP動態代理都爲咱們這些小白作了不少事情。mysql
二、springmvc呢比Struts2配置簡便多了。angularjs
3mybatis更爲數值的就是直接操做sql,將hibernate繁重的查詢拿掉了,咱們能夠很自如的寫咱們所須要的sql,大大減輕了服務器的壓力。接下來咱們就正式開始介紹他們的配置詳細信息!web
首先咱們要很清楚一個簡單的項目的項目結構和他們之間的關係,咱們把技術從後往前說:spring
1、數據庫,樓主用的是mysql(免費)sql
2、mybatis(mybati-splus mybatis加強版)、Druid鏈接池數據庫
3、springexpress
4、Java代碼json
5、springMVC
6、前端代碼
咱們很清楚,一個web項目就是從前日後進行對數據庫的crud,實際上就是Java代碼對數據庫進行的crud,Java有API能夠直接對數據庫進行操做,可是很麻煩,因此咱們就有了中間的mybatis來加強Java操做數據庫的能力,因此mybatis(輔助角色)就像一個月老同樣牽線mysql和Java之間更好的接觸!下面就是重點了:
首先:要操做數據庫確定要連接數據庫,因此mybatis提供了咱們一套連接數據庫的配置,可是咱們操做數據庫確定是不能一個操做A等另外一個操做B用完了連接以後釋放了連接銷燬連接,A再去建立鏈接,鏈接數據庫進行操做,這樣很慢,因此就有了鏈接池的出現了(具體鏈接池的做用大家能夠百度)。
咱們用鏈接池去鏈接數據庫,用id標註這個鏈接池叫dataSource(注意這裏只能是這樣寫,寫錯了是啓動不了的)。這樣咱們用鏈接池將mybatis和數據庫已經創建好了連接
其次:咱們要把mybatis和spring集成起來,因此咱們會使用到下面這個類
看名字咱們就知道,這是sql會話工廠,因此咱們要把mybatis的相關東西交給spring管理,注意上面的p:(屬性)擴號裏面的不能寫錯,寫錯了是起不來的服務器,我打開源碼就知道SqlSessionFactory就知道,裏面有屬性名稱都是那樣寫的,咱們知道spring的依賴注入默認的是類名首字母小寫,若是你寫錯了,spring就找不到相應的資源啓動報錯!固然咱們的數據源遠也要交給spring管理。而後咱們要自動掃面mapper,用,mapper.java和mapper.xml創建鏈接
屬性basePackage表示mapper.java所在的位置,隱藏的是mapper文件所在的共同包,包與包之間用.隔開,兩個*號表示中間省略的不同的包名,能夠用*代替,他就會自動掃面匹配全部(已隱藏掉)開頭,以dao結尾的包下面的全部的mapper.java文件。
再者:接下來咱們就要把事務管理加進去,什麼是事務有什麼特性大家須要的能夠本身百度一下這裏不詳細介紹了
配置事務管理通知:propagation事務的傳播性,REQUIRED表示這是一個事務就管理這個事務,若是不是事務就建立一個事務,後面表示只要拋出異常事務就會回滾,什麼意思呢,就是好比你的全部改變數據的操做只要拋出異常,數據就會回到原來沒有改變以前的狀態;下面的read-only表示對方法名是以select和count開頭的只能進行查的操做不能進行增刪改操做!而後下面就要對這些事務具體是用在哪裏的進行配置
箭頭所指的很熟悉吧,這個配置就是告訴上面的事務管理哪些地方,expression是切入點,表示,對以什麼開頭,中間有service包下面的全部包的全部方法進行事務管理,後面的括號表示方法。這裏mybatis和spring的集成配置就介紹的差很少了
最後:springMVC的配置,springmvc的做用是什麼呢就是分發咱們的請求到指定的控制器裏面找到適配器執行相應的操做,爲何說這句話呢,就是他不直接管理咱們的service,因此咱們在MVC中直接配置掃描全部的controller就好了
mcv是直接和web創建的聯繫的,因此爲了防止IE在返回時json數據的時候出現下載狀況,咱們都會配置一個避免IE下載的配置,網上大把這裏再也不貼圖。而後咱們前端用的angularjs先後分離,不是用的jsp,若是大家用的jsp把這個加上
第一個自定義的重定向,意思是訪問路徑是訪問的根目錄的時候會自動跳轉到你後面配置的路徑上去其餘的大家看註釋就好!
這裏一個簡單的ssm框架就行了,至於項目目錄結構樓主用的是maven,大家去了解下maven就行了,最後在web.xml裏面吧classpath下面的配置文件交給web.xml在啓動的時候加載就好了!若有不對請各位大佬指出,小弟改過;若有什麼疑問也請提出來共勉!