回覆列表
  • 1 # 程式魚哥

    我來回答一下,具體用什麼框架跟專案規模和大小有很大的關係,下面從單體應用架構和微服務架構兩個方面講一下。

    一、單體應用架構

    單體應用架構比較簡單,普遍用到就是五大框架,包括mvc層、持久層等。由於這五大框架是web開發框架學習的基礎,相對於微服務框架比較簡單,在此簡單介紹一下。

    Spring:ioc容器和bean管理,解決的是業務邏輯層和其他各層的松耦合問題,也起到紐帶和橋樑的作用。Springmvc:目前使用最普遍和最流行的mvc框架。Struts2:也是一款類似於Springmvc功能的mvc框架,它的前身struts1基本沒人使用了。struts2相較於springmvc有諸多劣勢,包括自身漏洞門問題,慢慢走向沒落。現在使用的大部分都是維護的老專案老系統。hibernate:重量級的面向物件的持久層框架,其實它的功能非常強大,由於其自身功能的強大在使用和配置上比較複雜,很多程式設計師待之以鄙夷。hibernate用於中小系統專案還是很合適的,開發效率較高。mybatis:是一款中低量級別的半自動的持久層框架,由於自身使用的靈活性和易於aql調優,目前還是非常流行的,很多大型專案都用到它。二、微服務架構

    微服務架構相對於單體應用架構複雜些,尤其是微服務架構用到分散式應用架構就更為複雜。

    springboot:微服務基礎框架,由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。透過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。特點 :1. 建立獨立的Spring應用程式 2. 嵌入的Tomcat,無需部署WAR檔案 3. 簡化Maven配置 4. 自動配置Spring 5. 提供生產就緒型功能,如指標,健康檢查和外部配置 6. 絕對沒有程式碼生成和對XML沒有要求配置。一句話總結:使用springboot可以高效快速開發web應用,而且可以不使用單體應用開發框架中那些繁雜的xml配置。Dubbo:Dubbo是一個分散式服務框架,致力於提供高效能和透明化的RPC遠端服務呼叫方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分散式的需求,其實是不需要用的,只有在分散式的時候,才有dubbo這樣的分散式服務框架的需求,並且本質上是個服務呼叫的東東,說白了就是個遠端服務呼叫的分散式框架(告別Web Service模式中的WSdl,以服務者與消費者的方式在dubbo上註冊) 其核心部分包含: 1. 遠端通訊: 提供對多種基於長連線的NIO框架抽象封裝,包括多種執行緒模型,序列化,以及“請求-響應”模式的資訊交換方式。 2. 叢集容錯: 提供基於介面方法的透明遠端過程呼叫,包括多協議支援,以及軟負載均衡,失敗容錯,地址路由,動態配置等叢集支援。 3. 自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查詢服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。SpringCloud:用官方文件的說明:Spring Cloud為開發人員提供了快速構建分散式系統中的一些通用模式(例如配置管理,服務發現,斷路器,智慧路由,微代理,控制匯流排,一次性令牌,全域性鎖,領導選舉,分散式 會話,群集狀態)。 分散式系統的協調導致了鍋爐板模式,並且使用Spring Cloud開發人員可以快速地站起來實現這些模式的服務和應用程式。 它們可以在任何分散式環境中正常工作,包括開發人員自己的膝上型電腦,裸機資料中心和受管平臺,如Cloud Foundry。

    以上就是公司普遍使用的一些框架,當然還有其他的一些框架,比如jFinal、ejb、公司自研封裝的一些框架等等,不管用什麼框架,技術選型的前提就是滿足需求,學習成本低,開發效率高,伸縮效能和可擴充套件效能要好等等。

  • 中秋節和大豐收的關聯?
  • 夏季汽車主要需要在哪些方面保養?