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