更新時間:2022-06-01 來源:黑馬程序員 瀏覽量:
“框架(Framework)"一詞最早出現(xiàn)在建筑領(lǐng)域,指的是在建造房屋前期構(gòu)建的建筑骨架。在編程領(lǐng)域,框架就是應(yīng)用程序的骨架,開發(fā)人員可以在這個骨架上加入自己的東西,搭建出符合自己需求的應(yīng)用系統(tǒng)。
軟件框架是一種通用的、可復(fù)用的軟件環(huán)境,它提供特定的功能,促進(jìn)軟件應(yīng)用、產(chǎn)品和解決方案的開發(fā)工作。軟件框架會包含支撐程序、編譯器、代碼、庫、工具集以及API,它把所有這些部件匯集在一起,以支持項目或系統(tǒng)的開發(fā)。
軟件框架可以形象地比喻成我們在蓋樓房時,用梁+柱子+承重墻搭建起來的鋼筋混凝土結(jié)構(gòu)的建筑框架,它是整個建筑的骨架。而實現(xiàn)的軟件功能,也就像在這個建筑框架中所要實現(xiàn)的不同類型、功能的房子,比如健身房、商場、酒店、飯店等。
在早期Java EE應(yīng)用開發(fā)中,企業(yè)開發(fā)人員是利用JSP+Servlet技術(shù)進(jìn)行軟件應(yīng)用和系統(tǒng)開發(fā)的,使用該技術(shù)會有以下兩個弊端。
(1)軟件應(yīng)用和系統(tǒng)可維護(hù)性差如果全部采用JSP+Servlet技術(shù)進(jìn)行軟件的開發(fā),因為分層不夠清晰,業(yè)務(wù)邏輯的實現(xiàn)無法單獨分離出來,從而造成系統(tǒng)后期維護(hù)困難。
(2)代碼重用性低
企業(yè)希望以最快的速度,開發(fā)出最穩(wěn)定、最實用的軟件。如果系統(tǒng)不使用框架,每次開發(fā)系統(tǒng)都需要重新開發(fā),需要投入大量的人力物力,并且重新開發(fā)的代碼可能具有更多的漏洞,這就增加了系統(tǒng)出錯的風(fēng)險。
相比于使用JSP+Servlet技術(shù)進(jìn)行軟件開發(fā),使用框架有以下優(yōu)勢。
1.提高開發(fā)效率:如果采用成熟、穩(wěn)健的框架,那么一些通用的基礎(chǔ)工作,如事務(wù)處理、安全性、數(shù)據(jù)流控制等都可以交給框架處理,程序員只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計,降低了開發(fā)難度。
2.提高代碼規(guī)范性和可維護(hù)性:當(dāng)多人協(xié)同進(jìn)行開發(fā)時,代碼的規(guī)范性和可維護(hù)性就變得非常重要。成熟的框架都有嚴(yán)格的代碼規(guī)范,能保證團(tuán)隊整體的開發(fā)風(fēng)格統(tǒng)一。
3.提高軟件性能:使用框架進(jìn)行軟件開發(fā),可以減少程序中的冗余代碼。例如,使用Spring框架開發(fā)時,通過Spring的IOC特性,可以將對象之間的依賴關(guān)系交給Spring控制,方便解耦,簡化開發(fā);使用MyBatis框架開發(fā)時,MyBatis提供了XML標(biāo)簽,支持動態(tài)的SQL,開發(fā)人員無需在類中編寫大量的SQL語句,只需要在配置文件中進(jìn)行配置即可。
Spring MVC框架
Spring MVC是一個Web開發(fā)框架,可以將它理解為Servlet。在MVC模式中,Spring MVC作為控制器(Controller)用于實現(xiàn)模型與視圖的數(shù)據(jù)交互,是結(jié)構(gòu)最清晰的。
Spring MVC框架采用松耦合、可插拔的組件結(jié)構(gòu),具有高度可配置性,與其他的MVC框架相比,具有更強(qiáng)的擴(kuò)展性和靈活性。
MyBatis是Apache的一個開源項目iBatis,2010年這個項目由Apache Software Foundation遷移到了Google Code,并且改名為MyBatis,2013年11月MyBatis又被遷移到Github。
MyBatis是一個優(yōu)秀的持久層框架,它可以在實體類和SQL語句之間建立映射關(guān)系,是一種半自動化的ORM(Object/Relation Mapping,即對象關(guān)系映射)實現(xiàn)。MyBatis封裝性要低于Hibernate,但它性能優(yōu)越、簡單易學(xué),在互聯(lián)網(wǎng)應(yīng)用的開發(fā)中被廣泛使用。
Spring Boot框架是Pivotal團(tuán)隊基于Spring開發(fā)的全新框架,其設(shè)計初衷是為了簡化Spring的配置,使用戶能夠構(gòu)建獨立運行的程序,提高開發(fā)效率。
Spring Boot框架本身并不提供Spring框架的核心特性及擴(kuò)展功能,它只是用于快速、敏捷地開發(fā)新一代基于Spring框架的應(yīng)用,同時它還集成了大量的第三方類庫(如Jackson、JDBC、Redis等),使用戶只需少量配置就能完成相應(yīng)功能。
Spring Cloud是一系列框架的有序集合,為開發(fā)人員構(gòu)建微服務(wù)架構(gòu)提供了完整的解決方案,它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)的開發(fā)。例如,配置管理、服務(wù)發(fā)現(xiàn)、控制總線等操作,都可以使用Spring Boot做到一鍵啟動和部署。可以說,Spring Cloud將Spring Boot框架進(jìn)行了再封裝,屏蔽掉了復(fù)雜的配置和實現(xiàn)原理,具有簡單易懂、易部署和易維護(hù)等特點。