首頁>Club>
現在jsp似乎已經漸漸淡出大家的視野。 web開發朝著前後端分離的方向去了 像spring mvc這樣前後端耦合較大的框架是否過時了?
13
回覆列表
  • 1 # IT人劉俊明

    這是一個非常好的問題,也是很多Java開發人員比較關心的問題之一,作為一名IT從業者,同時也是一名教育工作者,我來回答一下。

    首先,當前Spring MVC依然有非常廣泛的應用,由於Spring MVC自身的生體體系比較完善,所以採用Spring MVC也會降低專案的開發風險。但是,從軟體開發大的發展趨勢來看,Spring MVC在應用端的發展空間會逐漸縮小。

    在雲計算時代,大量傳統的開發任務,尤其是應用端的開發任務將逐漸從IaaS模式向PaaS模式轉變,這個過程對於軟體開發的技術選型會產生非常明顯的影響。從Spring MVC的技術體系結構來看,Spring MVC是比較典型的IaaS模式,業務邏輯和功能實現都由開發人員來完成,這種開發方式在雲計算時代將產生較大的變革。

    雖然採用Spring MVC依然可以實現各種傳統開發任務,但是在雲計算時代,隨著軟體產品的迭代速度進一步提升,傳統的Spring MVC就顯得有點“重了”,這將導致專案開發週期延長,同時也不太允許團隊小型化的開發模式,從這一點來看,Spring MVC未來的應用空間會逐漸被壓縮,更輕量級的開發框架將受到程式設計師的青睞。實際上,當前很多程式設計師更願意採用Spring Boot,其中一個比較明顯的原因就是Spring Boot更輕,更適合當前“微服務”的開發模式。

    雲計算的發展趨勢是全棧雲和智慧雲,在這兩個發展趨勢的推動下,未來在應用端的開發將逐漸向“資源介面”的方式發展,而所謂的資源介面則是把大量的資源(資料、算力)介面化,程式設計師只需要根據專案的需要進行呼叫就可以了。從這個角度來看,未來Spring框架將進一步輕量化,而Spring MVC則很有可能會被進一步封裝和整合。

  • 2 # 阿邁達聊技術

    SpringMVC當然沒有過時,目前很多企業的專案還都是基於SpringMVC構建的。

    題主可能並沒有真正理解SpringMVC的精髓。最早的時候,我們使用SpringMVC的時候可能是前後端耦合在一起的。透過Controller的ModelAndView返回一個jsp的頁面。但是現在這種方式基本已經被淘汰。現在的SpringMVC框架都是以Rest風格編寫Controller層,也就是我們Controller層不再是返回Jsp的頁面,而是返回Json格式的資料。而前端可以選擇任何目前市面上流行的框架,例如:React、vue、小程式、H5等。所以,SpringMVC跟前後端分離沒有關係。如果說你還按照早期的ModeAndView開發,那你真的落伍了。

    但是,隨著微服務框架SpringBoot的出現以及大規模流行,SpringMVC的使用程度在降低,這主要是SpringMVC的配置太複雜。SpringMVC中有大量的xml檔案需要編寫,而且編寫起來很複雜。當然這些xml檔案編寫是基本一次性的,只要第一次編寫完成,後續的業務開發基本不用再改變。而SpringBoot基本完全拋棄了xml檔案的配置,所有的配置都是框架本身整合好的,只需要按照特定的約定去做就好。當然在整合有些中介軟體的時候,我們只需要編寫相應的Java程式碼即可,所以,SpringBoot的使用越來越廣泛,企業的很多新專案都是基於SpringBoot去開發。

    不管是SpringMVC還是SpringBoot,只要精通一種框架,剩下的框架自然而然的就懂了。框架本身就是為了減少程式設計師的工作而設計的,無需過多的糾結過不過時的問題,拿來即用是我們最終的目標。

  • 3 # ds小周

    兄弟不要懷疑,springmcv沒有過時,堅持自己的內心學下去吧!我將結合實際工作來說明

    1.首先說明你提問中的一個誤區,spring mvc 不是為jsp而生的,jsp雖然淡出了人們的視野,但是mvc同樣能夠提供json這種輕量級的響應格式的響應,來支援前後端分離的專案。

    2.如果非要探討spring mvc是否過時,我覺得不應該把springmvc和springboot進行比較:springmvc是一個同步阻塞性的web開發框架,而springboot只是一個為了方便快速開發spring應用的一個的一個框架,其核心是依賴了spring和springmvc的;我覺得要比較應該與spring webflux比較,webflux是一個非同步非阻塞的web框架。

    2.1那麼從web同步響應框架切換到非同步響應框架有什麼好處呢,比如下載,上傳這些耗時的操作,使用非同步框架顯然更加優越,但是不是所有的場景都需要非同步。

    最後我想說springmvc框架原始碼,也是值得一讀的,你將體驗到spring設計的優雅,各種設計模式的使用,如介面卡模式如何實現由實現controller介面到@Restcontoller的相容,攔截器鏈式呼叫如何實現的。

  • 4 # 北漂梅竹

    肯定沒過時,個人觀點,為什麼要做前後端分離。也要看專案。一個管理系統值得分離嗎,內部人使用的,沒多少訪問量,分離反而增加運營和開發成本,非要技術濫用那也沒法。

  • 中秋節和大豐收的關聯?
  • N年後《火影》裡的火影巖沒位置刻火影了該怎麼辦?