ssm框架理解

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命令。程序員

SSH和SSM定義spring

SSH 一般指的是 Struts2 作控制器(controller),spring 管理各層的組件,hibernate 負責持久化層。sql

SSM 則指的是 SpringMVC 作控制器(controller),Spring 管理各層的組件,MyBatis 負責持久化層。數據庫

共同點:1.Spring依賴注入DI來管理各層的組件。2.使用面向切面編程AOP管理事物、日誌、權限等。編程

不一樣點:1.Struts2 和 SpringMVC 控制器(controller)控制視圖和模型的交互機制的不一樣,緩存

Struts2是Action類級別,SpringMVC是方法級別,更容易實現RESTful風格。mybatis

Hibernate 和 MyBatis 兩種ORM框架對比app

二者的相同點框架

Hibernate與MyBatis均可以是經過SessionFactoryBuider由XML配置文件生成SessionFactory,而後由SessionFactory 生成Session,最後由Session來開啓執行事務和SQL語句。其中SessionFactoryBuider,SessionFactory,Session的生命週期都是差很少的。ide

Hibernate和MyBatis都支持JDBC和JTA事務處理。

二者各自優點

MyBatis能夠進行更爲細緻的SQL優化,能夠減小查詢字段。

MyBatis容易掌握,而Hibernate門檻較高。

Hibernate的DAO層開發比MyBatis簡單,Mybatis須要維護SQL和結果映射。

Hibernate對對象的維護和緩存要比MyBatis好,對增刪改查的對象的維護要方便。

Hibernate數據庫移植性很好,MyBatis的數據庫移植性很差,不一樣的數據庫須要寫不一樣SQL。

Hibernate有更好的二級緩存機制,可使用第三方緩存。MyBatis自己提供的緩存機制不佳,更新操做不能指定刷新指定記錄,會清空整個表,可是也可使用第三方緩存。

Hibernate 封裝性好,屏蔽了數據庫差別,自動生成SQL語句,應對數據庫變化能力較弱,SQL語句優化困難。

MyBatis僅實現了SQL語句和對象的映射,須要針對具體的數據庫寫SQL語句,應對數據庫變化能力較強,SQL語句優化較爲方便。

總結

SSM和SSH不一樣主要在MVC實現方式,以及ORM持久化方面不一樣(Hiibernate與Mybatis)。SSM愈來愈輕量級配置,將註解開發發揮到極致,且ORM實現更加靈活,SQL優化更簡便;而SSH較注重配置開發,其中的Hiibernate對JDBC的完整封裝更面向對象,對增刪改查的數據維護更自動化,但SQL優化方面較弱,且入門門檻稍高。

相關文章
相關標籤/搜索