全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

首頁(yè)技術(shù)文章正文

什么是SSM框架?有哪些組成部分?

更新時(shí)間:2021-06-16 來(lái)源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

Java SSM框架即指Spring+SpringMVC+MyBatis的簡(jiǎn)稱(chēng),框架集由Spring、MyBatis兩個(gè)開(kāi)源框架整合而成(SpringMVC是Spring中的部分內(nèi)容),常作為數(shù)據(jù)源較簡(jiǎn)單的web項(xiàng)目的框架。

相比于之前的SSH(Spring+Struts+Hibernate),SSM更加輕量化和靈活,是目前業(yè)界主流的Java Web開(kāi)發(fā)框架。

Spring

Spring框架是一系列應(yīng)用框架的核心,是整合其他應(yīng)用框架的基礎(chǔ)。也是Spring Boot的基礎(chǔ),Spring框架里面包含了Spring、SpringMVC、SrpingTest等。

Spring的優(yōu)點(diǎn)總結(jié):

1、非侵入式設(shè)計(jì)

Spring是一種非侵入式(non-invasive)框架,它可以使應(yīng)用程序代碼對(duì)框架的依賴(lài)最小化。

2、 方便解耦、簡(jiǎn)化開(kāi)發(fā)

Spring就是一個(gè)大工廠(chǎng),可以將所有對(duì)象的創(chuàng)建和依賴(lài)關(guān)系的維護(hù)工作都交給Spring容器管理,大大的降低了組件之間的耦合性。

3、支持AOP

Spring提供了對(duì)AOP的支持,它允許將一些通用任務(wù),如安全、事務(wù)、日志等進(jìn)行集中式處理,從而提高了程序的復(fù)用性。

4、支持聲明式事務(wù)處理

只需要通過(guò)配置就可以完成對(duì)事務(wù)的管理,而無(wú)需手動(dòng)編程。

5、方便程序的測(cè)試

Spring提供了對(duì)Junit4的支持,可以通過(guò)注解方便的測(cè)試Spring程序。

6、方便集成各種優(yōu)秀框架

Spring不排斥各種優(yōu)秀的開(kāi)源框架,其內(nèi)部提供了對(duì)各種優(yōu)秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。

7、降低Java EE API的使用難度

Spring對(duì)Java EE開(kāi)發(fā)中非常難用的一些API(如:JDBC、JavaMail等),都提供了封裝,使這些API應(yīng)用難度大大降低。

1623836943488_ssm框架.jpg

Spring MVC
SpringMVC有什么優(yōu)點(diǎn)?SpringMVC是spring框架的一個(gè)模塊,是基于MVC的輕量級(jí)Web框架。Spring是目前Web開(kāi)發(fā)中的一個(gè)很重要的部分。尤其在企業(yè)招聘相關(guān)開(kāi)發(fā)者的時(shí)候,有大量的筆試和面試題目都與springMVC有關(guān)。

  SpringMVC是一個(gè)典型教科書(shū)式的MVC框架,對(duì)于初學(xué)者而言是非常好的。其他優(yōu)點(diǎn)可以概括為:
  1、SpringMVC可以支持各種試圖技術(shù),而不僅僅局限于JSP;
  2、與Spring框架集成(如IoC容器、AOP等);
  3、清晰的角色分配:前端控制器(dispatcherServlet) , 請(qǐng)求到處理器映射(handlerMapping), 處理器適配器(HandlerAdapter), 視圖解析器(ViewResolver);
  4、支持各種請(qǐng)求資源的映射策略;

SpringMVC的主要組件有什么?
 ?。?)前端控制器 DispatcherServlet。接收請(qǐng)求、響應(yīng)結(jié)果,相當(dāng)于轉(zhuǎn)發(fā)器,有了DispatcherServlet 就減少了其它組件之間的耦合度。
  (2)處理器映射器HandlerMapping。根據(jù)請(qǐng)求的URL來(lái)查找Handler。
 ?。?)處理器適配器HandlerAdapter。在編寫(xiě)Handler的時(shí)候要按照HandlerAdapter要求的規(guī)則去編寫(xiě),這樣適配器HandlerAdapter才可以正確的去執(zhí)行Handler。
  (4)處理器Handler。編寫(xiě)Handler時(shí)按照HandlerAdapter的要求去做,這樣適配器才可以去正確執(zhí)行Handler。
  (5)視圖解析器 ViewResolver。進(jìn)行視圖的解析,根據(jù)視圖邏輯名解析成真正的視圖(view)。
  (6)視圖View。View是一個(gè)接口, 它的實(shí)現(xiàn)類(lèi)支持不同的視圖類(lèi)型(jsp,freemarker,pdf等等)。


MyBatis

MyBatis是一個(gè)基于Java的持久層框架,所謂的持久層框架就是專(zhuān)門(mén)用來(lái)將數(shù)據(jù)進(jìn)行持久化的框架,也就是說(shuō)將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中的框架。學(xué)習(xí)并掌握Mybatis,首先就要了解Mybatis的核心組件。

Mybatis是半自動(dòng)ORM映射工具,可以自定義高效的SQL語(yǔ)句提升數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的效率。Mybatis是半自動(dòng)的原因是因?yàn)槲覀円贛apper文件中手寫(xiě)SQL語(yǔ)句,全自動(dòng)的ORM(如Hibernate)是不需要手寫(xiě)SQL的。MyBatis可以自定義高效的SQL語(yǔ)句提升數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的效率;而且MyBatis容易掌握,而Hibernate門(mén)檻較高。所以我們用Mybatis代替?zhèn)鹘y(tǒng)的Hibernate。



   

猜你喜歡:

Spring的下載和目錄結(jié)構(gòu)

MyBatis框架如何實(shí)現(xiàn)數(shù)據(jù)查詢(xún)?有幾種方法?

Mybatis 執(zhí)行SQL命令的完整流程

黑馬程序員Java開(kāi)發(fā)課程

分享到:
在線(xiàn)咨詢(xún) 我要報(bào)名
和我們?cè)诰€(xiàn)交談!