本文基本與百度百科的解析一致:https://baike.baidu.com/item/SSM/18801167?fr=aladdin
這里的解析通俗易懂,很適合從spring基本框架向ssm進一步學習。
簡介
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis兩個開源框架整合而成(SpringMVC是Spring中的部分內容)。常作為數據源較簡單的web項目的框架。
Spring
Spring就像是整個項目中裝配bean的大工廠,在配置文件中可以指定使用特定的參數去調用實體類的構造方法來實例化對象。也可以稱之為項目中的粘合劑。
Spring的核心思想是IoC(控制反轉,依賴注入),即不再需要程序員去顯式地`new`一個對象,而是讓Spring框架幫你來完成這一切。
SpringMVC
SpringMVC在項目中攔截用戶請求,它的核心Servlet即DispatcherServlet承擔中介或是前台這樣的職責,將用戶請求通過HandlerMapping去匹配Controller,Controller就是具體對應請求所執行的操作。SpringMVC相當於SSH框架中struts。
mybatis
mybatis是對jdbc的封裝,它讓數據庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory實例展開的。mybatis通過配置文件關聯到各實體類的Mapper文件,Mapper文件中配置了每個類對數據庫所需進行的sql語句映射。在每次與數據庫交互時,通過sqlSessionFactory拿到一個sqlSession,再執行sql命令。
總體流程
頁面發送請求給控制器,控制器調用業務層處理邏輯,邏輯層向持久層發送請求,持久層與數據庫交互,后將結果返回給業務層,業務層將處理邏輯發送給控制器,控制器再調用視圖展現數據。
組件的使用
1、@controller 控制器(注入服務)
用於標注控制層,相當於struts中的action層
2、@service 服務(注入dao)
用於標注服務層,主要用來進行業務的邏輯處理
3、@repository(實現dao訪問)
用於標注數據訪問層,也可以說用於標注數據訪問組件,即DAO組件.
4、@component (把普通pojo實例化到spring容器中,相當於配置文件中的
<bean id="" class=""/>)
泛指各種組件,就是說當我們的類不屬於各種歸類的時候(不屬於@Controller、@Services等的時候),我們就可以使用@Component來標注這個類。