SSM原理,簡要分析(僅供個人參考)
1.作用
SSM框架是spring MVC ,spring和mybatis框架的整合,是標準的MVC模式,將整個系統劃分為表現層,controller層,service層,DAO層四層。
使用spring MVC負責請求的轉發和檢視管理,spring實現業務物件管理,mybatis作為資料物件的持久化引擎。
2.原理
2.1 SpringMVC
使用者傳送請求,dispatcherServlet呼叫處理器對映器尋找處理請求的handler,返回handler的執行鏈,dispatcherservlet請求呼叫handler處理請求,handler介面卡找到handler,即controller,controller使用請求的內容,呼叫service業務方法進行處理,service方法又呼叫mapper對資料庫進行操作,返回操作結果給controller,controller封裝成modelandView返回給dispatcherServlet,dispatcherServlet將modelandview傳給檢視解析器,,檢視解析器返回真正的view,通過渲染檢視,將資料填充到request域,以網頁的形式展現給使用者;
2.2Mybatis
mybatis是對jdbc的封裝,它讓資料庫底層操作變的透明。mybatis的操作都是圍繞一個sqlSessionFactory例項展開的。mybatis通過配置檔案關聯到各實體類的Mapper檔案,Mapper檔案中配置了每個類對資料庫所需進行的sql語句對映。在每次與資料庫互動時,通過sqlSessionFactory拿到一個sqlSession,再執行sql命令。
sqlMapConfig.xml(mybatis的全域性配置檔案,名稱不固定)配置了資料來源,事務等執行環境,配置對映檔案,mapper.xml |
sqlSeesionFactory(會話工廠),根據配置檔案建立工廠作用:建立sqlSession, |
mysql |
sqlsession(會話) 作用:操作資料庫(sql的crud操作) |
Executor(執行器)也是一個介面(基本執行器,快取執行器)作用:sqlsession是通過執行器來操作資料庫的 |
mapped statement(底層封裝物件) 作用:對操作資料庫儲存封裝,包括sql語句、輸入引數、輸入結果型別 |
輸入引數型別 java簡單類 hashmap pojo自定義型別 |
輸出結果型別 java簡單類 hashmap pojo自定義型別 |
全域性配置檔案裡面配置了資料來源,事務,掃描別名等執行環境;然後配置pojo對應的對映mapper檔案,sqlSessionFactory會根據mapper的xml配置檔案,建立對應的sqlSession,sqlSession通過執行器來操作資料庫,mapperstatement封裝了一些sql需要傳入的引數和sql語句,通過執行器獲取資料庫中的結果集。
過程:定義pojo物件,屬性,生成對應的set和get方法;書寫Mapper.xml,定義增刪改查功能;書寫mapper.java介面檔案,定義介面方法,與mapper.xml定義的方法保持一致;書寫service檔案,為controller服務,接受controller的引數,將結果返回給controller;書寫controller,連線頁面請求和後臺,獲取頁面引數,對引數進行處理後傳給service的方法。
書寫jsp頁面,請求哪些引數,獲取哪些資料。
2.3 Spring
我們平時開發接觸最多的估計就是IOC容器,它可以裝載bean(也就是我們Java中的類,當然也包括service dao裡面的),有了這個機制,我們就不用在每次使用這個類的時候為它初始化,很少看到關鍵字new。另外spring的aop,事務管理等等都是我們經常用到的。