回覆列表
  • 1 # 自信中國人上海程式設計師

    搞不懂springboot哪裡好,搭新專案確實方便省事兒,但你又不會天天沒事兒搭建新專案,這個好處也就是一次性的。

    說配置少零配置的,其實spring3.0開始提倡以annotation配置為主 加少量全域性配置(資料來源 事務 jpa 等等),這樣的專案xml配置已經很少了,而且xml不會隨著時間和程式碼規模線性增長,況且配置也不是越少越好,有一點點xml全域性配置有助於看清楚專案架構,把xml配置全消滅 變成@configuration藏在各個java程式碼角落 其實損害了專案可維護性。所以boot的這個好處也意義不大 甚至是個缺點。

    convention over configuration約定優於配置 這個不是什麼好東西,約定就是潛規則就是坑。

    至於什麼maven依賴 profile環境配置等等,都不是boot特有的。

    只有命令列啟動不依賴tomcat這個算是個優點。

  • 2 # 網路圈

    Java作為當下最流行的程式設計開發語言,其地位是其它語言短時間內無法撼動的,這幾十年的積累讓Java的生態圈變得很完善,因而Java界也有很多優秀的框架,這幾年Spring框架的出現讓Java開發變得更容易。

    Spring框架為Java開發提供了完美的解決方案,Spring全家桶中的Spring MVC和Spring Boot 都可以用來開發Java Web專案,那開發者該如何選擇呢?

    Spring MVC與Spring Boot介紹與關係

    1、Spring MVC是一款MVC框架

    Spring MVC它是一款Web MVC框架,Spring MVC採用的是POJO模式,透過強大的依懶注入功能使得MVC分層開發更為容易。

    2、Spring Boot是一種整合工具組合

    Spring Boot主要是為了簡化Spring專案的建立、執行及部署而推出的,雖說Spring應用的註解功能很強大,但依舊避免不了過多的XML配置。Spring Boot採用了“約定優於配置”的思想,可以做到零配置就能建立Spring應用,使開發者從繁瑣的配置中解脫出來。

    Spring Boot本身並不是一種新的技術,可以把它理解成是基於Spring的一套快速開發工具集合(集成了大量常用的第三方庫配置,如:Jackson, JDBC, Mongo, Redis, Mail等)。

    可以把Spring Boot理解成Spring MVC的升級(但不是簡單的升級)。

    Spring MVC與Spring Boot如何選擇?

    如上所述,Spring Boot無論是定位還是功能上都比Spring MVC要好,那是不是意味著我們只用Spring Boot就行了呢?答案是否定的。

    對於剛接觸Java Web開發的朋友來說,Spring MVC是必須要掌握的,雖說配置麻煩,但掌握了它可以讓你對Java Web開發及MVC模式有更深層的認知。如果不曾瞭解Spring MVC就直接用Spring Boot,可能出了問題都不知道怎麼排查。

    對於專案選型來說,不管是老專案升級還是新專案,請選擇Spring Boot,放棄Spring MVC。

  • 3 # 會點程式碼的大叔

    Spring Boot 和 Spring MVC 並不衝突,不是說你用了 Spring Boot 就不能用 Spring MVC,反過來也一樣,我建議是將專案升級到 Spring Boot,並引入 spring-boot-starter-web 即可。

    01. 理清 Spring Boot 和 Spring MVC 的關係

    Spring 是一個大家族,包含了一系列的框架;

    我們經常說到的 Spring 是指 Spring Framework,它的基礎就是我們熟知的 IoC 和 AOP,其中 IoC 提供了依賴注入的容器,AOP 提供了面向切面的程式設計;

    Spring MVC 提供了模型-檢視-控制模式的開發元件,可以讓前端檢視、輸入邏輯和業務邏輯分離;

    隨著 Spring 能夠支援的元件越來越多,需要引入的配置檔案也越來越多,為了簡化專案搭建的複雜度,誕生了 Spring Boot ,它本身並不提供 Spring 的核心特性和擴充套件功能,而是可以快速方便地與 Spring 的其他框架進行整合,提升開發人員的效率和體驗。

    02. 為什麼要用 Spring Boot

    讓開發更快:使用 Spring Boot ,可以快速地與大部分主流框架的整合,由於約定優於配置的思想,在整合過程中只需要少量的配置,開發人員可以專注於業務邏輯的實現;

    讓測試更快:Spring Boot 支援多種測試框架,比如 JUnit、Spring Test、Mockito 等等,開發人員只需要引入 spring-boot-start-test,就可以對資料庫、Mock 等進行測試;

    讓部署釋出更快:Spring Boot 是內建容器的,也就是使用了 Spring Boot 的專案可以直接執行啟動,而不需要關心容器環境的問題。

    03. Spring MVC 專案遷移到 Spring Boot

    將 Spring MVC 專案轉移到 Spring Boot 也是比較簡單的,在此過程中需要注意以下幾點:

    如果專案不是基於 Maven 構建的,需要先將普通的 Java Web 專案轉成 Maven 工程;

    在 pom.xml 檔案中新增 spring-boot-starter 相關依賴;比如 Spring MVC 就需要引入 spring-boot-starter-web ;

    新增啟動類 Application.java ,這是 Spring Boot 專案啟動的入口;

    如果專案中有繼承了 ContextLoaderListener 的監聽類,需要進行修改;

    修改資料來源的配置,只需要在 yml 或 properties 增加配置即可;

    日誌輸出的配置,Spring Boot 預設是使用 logback 框架的;

    使用 WebConfig 替代 web.xml 和 spring-mvc.xml 等配置檔案。

  • 4 # 駭客之家

    Java後臺開發現在當然是採用spring boot好

    spring boot是為了簡化spring、spring mvc框架繁瑣的配置而誕生的,它整合了spring mvc、spring security等spring全家桶,還包括redis、neo4j、mysql、elasticsearch、couchbase等常用的中介軟體。

    Java

    Java

    傳統的spring mvc專案需要自己配置xml檔案,還需要單獨配置tomcat伺服器,xml的配置非常繁瑣,spring boot開箱即用、約定優於配置。你建立一個spring boot專案,不需要配置就可以執行服務,一些配置已經有預設值了,如果你想修改可以自己定義。這就是spring boot的好處,可以使用預設值,想自己定義也可以。

    Spring Boot

    spring boot

    spring boot專案內嵌tomcat、undertow、jetty等容器,不需要單獨的伺服器,專案可以直接打包成jar包,執行、部署都很方便。

    現在比較火的微服務spring cloud也是基於spring boot專案的,spring boot專案方便整合閘道器、註冊中心等,傳統的spring mvc適合單體應用,不適合微服務。

    Spring Cloud

    spring cloud架構

    所以Java後臺開發採用spring boot比較好,如果有spring mvc的經驗可以很快掌握spring boot的使用,spring boot要比傳統的spring mvc方式要簡單很多,spring boot的出現是為了簡化spring專案的配置。在spring boot專案中同樣可以使用spring mvc,只不過是spring boot整合了spring mvc使用更簡單了。

    Spring Boot

    spring boot

  • 5 # 神話56644777

    如果不熟悉SSM我不建議springboot直接上的,等你熟悉SSM以後再用springboot,這樣能認識更深入些。

  • 6 # Kapu

    如果不上spring cloud的話,那麼:

    你這個單體系統如果比較龐大,用springMVC;

    如果比較小,則使用boot。

    如果上cloud,那麼不用說了。

    boot缺少xml配置,開發複雜系統會很麻煩,Java程式碼裡各種配置項,比較亂,,只是用@Bean替換了xml-bean,,而且boot會有很多auto configuration,如果你不熟,會有很多不明白的地方。。。

  • 7 # 難憶憶

    你瞭解一下springboot做啥事的就不會問這個問題了,springboot是整合spring的全家桶,簡化工程配置,現在的專案用spring框架沒有理由不上springboot

  • 8 # java架構設計

    實際上是不能拿SpringMVC和SpringBoot去做比較的。SpringBoot和SpringMVC是包含的關係,SpringBoot下面有很多模組,譬如下圖這些:

    還有這些:

    以及這些:

    所以不要覺得SpringBoot就僅僅是SpringMVC,SpringMVC在SpringBoot中充其量就是一個spring-boot-starter-web模組而已。

    所以題主應該考慮的是web層我到底是用SpringMVC還是用SpringBoot中的spring-boot-starter-web模組呢?

    SpringMVC

    Spring MVC提供了一種輕度耦合的方式來開發web應用。它是Spring的一個模組,是一個web框架。核心就是Dispatcher Servlet, ModelAndView 和 View Resolver這三大模組,讓大家開發web應用變得很容易。目前無論是直接用SpringMVC還是用SpringBoot中的web模組,其實都是用的SpringMVC,只不過SpringBoot無需配置,新增一些指定的註解即可。

    SpringBoot

    Spring Boot實現了自動配置,降低了專案搭建那些繁瑣的步驟和配置,這些東西往往容易出錯。所以SpringBoot把這些都給整合起來了,可以把它當做一個各種框架、中介軟體甚至工具的整合包,開箱即用,一個依賴,幾個註解即可開始開發。

    一定要認清的是SpringBoot不是解決Spring的方案,只是簡化了Spring框架生態下的整合步驟和效率。

    總結

    現在大多數公司已經直接使用SpringBoot去做後臺開發了,除了一些老舊系統,新的系統基本上都會採用SpringBoot去整合開發。SpringCloud、微服務等對SpringBoot的支援都比較好。同樣在招聘需求裡,SpringBoot也是必須會的一個框架。

    綜上,個人建議採用SpringBoot替代SpringMVC進行開發。

  • 9 # 使用者970116757434

    瞭解底層,大概瞭解一下xml檔案,註解是如何解析的,spring是如何生成bean並有效管理,使用起來就順手多了

  • 10 # YouMi

    肯定是boot了,難道你還是喜歡配置那麼多配置檔案嗎?又繁瑣又容易出錯,而且後面用cloud,boot是必須的啊

  • 中秋節和大豐收的關聯?
  • 鯊魚遇上呆萌的海豚,也要忌憚三分,原因為何?