ssh跟ssm的區別


SSH跟SSM的區別

SSH指的是:spring+Struts+hibernate;而SSM指的是:spring +SpringMVC + MyBatis。 


1、Spring是是開源框架,是輕量級的IoC和AOP的容器框架,主要是針對javaBean的生命周期進行管理的輕量級容器,可以單獨使用,也可以和Struts框架,ibatis框架等組合使用。 
1)IoC(Inversion of Control)控制反轉,對象創建責任的反轉,在spring中BeanFacotory是IoC容器的核心接口,負責實例化,定位,配置應用程序中的對象及建立這些對象間的依賴。XmlBeanFacotory實現BeanFactory接口,通過獲取xml配置文件數據,組成應用對象及對象間的依賴關系。Spring中有三種注入方式,一種是set注入,一種是接口注入,另一種是構造方法注入。 
2)AOP面向切面編程 
aop就是縱向的編程,如果業務1和業務2都需要一個共同的操作,與其往每個業務中都添加同樣的代碼,不如寫一遍代碼,讓兩個業務共同使用這段代碼。 
spring中面向切面變成的實現有兩種方式,一種是動態代理,一種是CGLIB,動態代理必須要提供接口,而CGLIB實現是有繼承。 


Spring框架優點 

 

1)輕量級的容器框架沒有侵入性 
2)使用IoC容器更加容易組合對象直接間關系,面向接口編程,降低耦合 
3)Aop可以更加容易的進行功能擴展,遵循ocp開發原則 
4)創建對象默認是單例的,不需要再使用單例模式進行處理 


2、SpringMVC與Struts : 


1)兩者有個共同之處,那就是兩者都數據javaweb層的開發框架,都是mvc模式的的經典產品,都實現了頁面分離控制的功能,但是兩者之間是有區別的。 
2)在開發中,人們更願意使用SpringMVC而不是Struts。因為SpringMVC分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離讓它們更容易進行定制。在擴展和靈活性上更勝一籌。 
3)Struts的優勢在於靜態注入,插件機制和攔截器鏈,但是struts存在漏洞,經常會被作為攻擊點進行沖擊。相比更加安全簡單的SpringMVC,開發者漸漸開發放棄了它。 


3、Hibernate 與MyBatis: 


1)Hibernate與Mybatis都是流行的持久層開發框架,一句話概括:MyBatis 簡單易上手; 
2)hibernate成熟,市場推廣率高。 
3)MyBatis可以進行更為細致的SQL優化,可以減少查詢字段。 
4)MyBatis容易掌握,而Hibernate門檻較高。 
5)更重要的是,mybatis提供了對應各種用途、功能的插件,而hibernate在這一方面是遠遠比不上mybatis的。 
6)Hibernate的DAO層開發比MyBatis簡單,Mybatis需要維護SQL和結果映射。 
7)Hibernate對對象的維護和緩存要比MyBatis好,對增刪改查的對象的維護要方便。 
8)Hibernate數據庫移植性很好,MyBatis的數據庫移植性不好,不同的數據庫需要寫不同SQL。 
9)Hibernate有更好的二級緩存機制,可以使用第三方緩存。MyBatis本身提供的緩存機制不佳。 
10)但是hibernat缺點很明確,如果涉及到多張關聯表的調用時: 
  1. 多表關聯等比較復雜,使用的成本並不低; 
  2. 效率比較低,在大型項目中很少會使用到它,因為sql都是自動生成的,不太好進行人工的優化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM