成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

2019Java Web J2EE下的兩大框架SSH和SSM對比

新聞 前端
當下流行的兩種企業開發MVC開源框架,是我們Java程序猿必備知識能力。框架之所以流行,在于其易復用和簡化開發,精髓在思想,掌握了核心思想,我們掌握其他類似框架也不會有問題,建議大家有精力的話讀一下框架源碼,尤其是spring。

 當下流行的兩種企業開發MVC開源框架,是我們Java程序猿必備知識能力。MVC,即模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯??蚣苤粤餍校谟谄湟讖陀煤秃喕_發,精髓在思想,掌握了核心思想,我們掌握其他類似框架也不會有問題,建議大家有精力的話讀一下框架源碼,尤其是spring。

SSH和SSM定義

SSH 通常指的是 Struts2 做控制器(controller),spring 管理各層的組件,hibernate 負責持久化層。

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

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

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

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

SSH 和 SSM 的實現原理

1.Struts2 的實現原理

Struts2框架執行步驟(Struts2使用Filter嵌入):

1、客戶端初始化一個指向Servlet容器(例如Tomcat)的請求

2、這個請求經過一系列的過濾器(Filter)(這些過濾器中有一個叫做ActionContextCleanUp的可選過濾器,這個過濾器對于Struts2和其他框架的集成很有幫助

3、接著FilterDispatcher被調用,FilterDispatcher詢問ActionMapper來決定這個請求是否需要調用某個Action

4、如果ActionMapper決定需要調用某個Action,FilterDispatcher把請求的處理交給ActionProxy

5、通過Configuration Manager詢問框架的配置文件,找到需要調用的Action類

6、ActionProxy創建一個ActionInvocation的實例。

7、ActionInvocation實例使用命名模式來調用,在調用Action的過程前后,涉及到相關攔截器(Intercepter)的調用。

8、一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果通常是(但不總是,也可 能是另外的一個Action鏈)一個需要被表示的JSP或者FreeMarker的模版。

9、將處理結果返回給客戶端

2.SpringMVC 的實現原理

SpringMVC框架執行步驟(SpringMVC使用Servlet嵌入):

1、客戶端發出一個http請求給web服務器,web服務器對http請求進行解析,如果匹配DispatcherServlet的請求映射路徑(在web.xml中指定),web容器將請求轉交給DispatcherServlet.

2、DipatcherServlet接收到這個請求之后將根據請求的信息(包括URL、Http方法、請求報文頭和請求參數Cookie等)以及HandlerMapping的配置找到處理請求的處理器(Handler)。

3-4、DispatcherServlet根據HandlerMapping找到對應的Handler,將處理權交給Handler(Handler將具體的處理進行封裝),再由具體的HandlerAdapter對Handler進行具體的調用。

5、Handler對數據處理完成以后將返回一個ModelAndView()對象給DispatcherServlet。

6、Handler返回的ModelAndView()只是一個邏輯視圖并不是一個正式的視圖,DispatcherSevlet通過ViewResolver將邏輯視圖轉化為真正的視圖View。

7、Dispatcher通過model解析出ModelAndView()中的參數進行解析最終展現出完整的view并返回給客戶端。

Hibernate 和 MyBatis 兩種ORM框架對比

兩者的相同點

Hibernate與MyBatis都可以是通過SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,由Session來開啟執行事務和SQL語句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。

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優化方面較弱,且入門門檻稍高。

 

責任編輯:張燕妮 來源: 頭條科技
相關推薦

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-22 17:20:33

J2EE框架

2011-11-25 14:59:36

JavaJ2EE框架

2009-06-22 11:50:00

J2EE Web應用快速開發

2009-06-22 17:34:40

J2EE架構

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護

2009-06-10 14:10:23

J2EE學習J2EE是什么

2009-06-22 17:05:41

Java EEJava企業應用

2009-06-23 08:06:46

J2EE體系架構J2EE模型J2EE設計模式

2009-06-22 17:38:05

J2EE框架

2009-06-23 16:48:26

J2EE常見問題J2EE平臺

2009-06-23 16:51:56

J2EE運行環境性能優化

2009-06-19 17:03:44

J2EE學習

2010-05-06 15:12:53

集群負載均衡

2009-06-11 17:06:11

J2EE歷史Java EE概述

2009-06-19 10:09:00

J2EE開發框架

2012-01-17 10:22:07

JavaJ2EEJBoss

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2009-06-11 17:11:07

J2EE設計模式工廠模式

2011-06-28 09:56:49

JavaStruts2Webwork
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本爱爱视频 | av中文网 | 在线午夜 | 一区二区三区视频免费看 | 亚洲免费一区二区 | 99视频在线免费观看 | 欧美一区二区三区 | 欧美精品在线一区二区三区 | 九色91视频 | 国产成人午夜高潮毛片 | 91在线一区二区 | 成人18亚洲xxoo| 第一色在线 | 国产综合久久久 | 久久美女网 | 国产精品久久亚洲 | 五十女人一级毛片 | 国产良家自拍 | 国产精品123区 | 伊人狠狠操 | 精品成人一区二区 | 精品一区二区三区四区在线 | 一区二区三区视频在线 | 欧美日韩三级在线观看 | 综合色久| 99精品视频一区二区三区 | 午夜免费网站 | 免费一级毛片 | 成年人网站免费 | 欧美男人天堂 | 久久国产亚洲 | 亚洲精品永久免费 | 久久99久久 | 久久极品| 欧美色欧美亚洲另类七区 | 在线āv视频 | 狠狠艹 | 97超碰人人草 | 第一色在线 | 日韩在线免费视频 | 久久成人国产 |