注:這是一篇譯文,參考連接:https://www.e4developer.com/2018/09/24/should-you-use-spring-boot-in-your-project/java
Spring Boot現在看似愈來愈受市場永無止境的流行了,自從2014發佈以來,成功地在五年內超越了Java端服務器。但出現的一個問題是,當咱們開始一個新項目時,我應不該當使用Spring Boot?spring
我將在在這篇文章中,幫你回答這個問題!服務器
咱們每一個項目都是不同凡響的,咱們能夠經過一些特性比較。經過這些特性,我會告訴你的項目應不該該使用Spring Boot。架構
你仍使用微服務體系架構工做嗎?框架
Spring Boot的最大的賣點是它用於微服務架構。我贊成—我已經使用Spring Boot在大型企業的生產中實現了微服務架構,而且它工做得很好。less
可是我要指出的是,因爲許多公司熱衷於使用Spring Boot,沒有看到Spring Cloud,而錯失這個技術。我之前寫過關於Spring Cloud做爲微服務架構藍圖的文章—我真的認爲這是一個很好的思考方式。若是您已經在考慮使用Spring Boot和實現微服務,請查看Spring Cloud及其提供的內容。ide
Spring Boot是微服務架構的好選擇嗎?固然是!spring-boot
你的項目是否使用Kotlin?微服務
Kotlin彷佛很是快速的受到開發者的歡迎。自從2017年中期以來,彷佛它成了很是有趣的語言,許多開發人員熱衷於在服務器端使用它。 工具
若是你正在研究Spring Boot的Kotlin愛好者,我有一些很是棒的消息想告訴你。 Spring Boot 2.0構建於Spring 5之上,爲Kotlin帶來了更好的支持。您能夠在Spring官方網站上發佈的文章中閱讀它 - 介紹Spring Framework 5.0中引入Kotlin支持。
在使用Kotlin的時,Spring Boot是否是一個不錯的選擇?絕對是的!
你會使用Serverless架構嗎?
另外一個正在流行的趨勢是Serverless架構。隨着AWS lambda(亞馬遜一種無服務器架構技術)和Azure Functions(微軟一種無服務器架構),在運行您的系統時變得愈來愈容易……「無服務器」。因爲這個詞語的意思存在一些爭論,我在這個詞語使用了引號。你能夠自我判斷。
使用這個技術,你能夠運行你的Spring Boot無服務器技術,但你會這麼作嗎?我認爲這不是Spring Boot或無服務器架構的最佳選擇。
你應該用什麼技術更替它?若是你想知道Spring這個傢伙在背後都作了什麼,你應該看一下RIFF這個項目。不過它還處於早期階段,但至關有趣。
偶然的機會,讓我在博客上表達奇異的見解——是否是能夠考慮另外一種語言實現?Java用於無服務器技術,我認爲使用JVM不是最好的方法。若是你不一樣意,你能夠在評論裏給我指點指點。
那麼,Spring Boot是無服務器架構的好選擇嗎?我不會這麼認爲。
你是正在進入Spring的開發者嗎?
Spring是一個很是強大的生態系統,從頭開始學習,確實很是讓人頭疼的。若是你的團隊之前從未使用過,你得考慮這是否是一個正確的選擇?
我很喜歡在Spring Boot項目上和一些沒有Spring開發經驗的人員合做。我發現,Spring Boot有一個至關好的學習曲線。您能夠很快地得到基礎知識,而且當您學習這個框架時,不用擔憂配置。
事實上,我發現Spring Boot是最友好的服務器端框架之一。也許這就是它的瘋狂流行的緣由之一?
若是你想找一個好地方開始學習Spring Boot,我能夠推薦Pluralsight做爲它的課程(我寫了一篇關於使用Pluralsight學習的文章,我是它的會員)和使人驚歎的Spring官方指南。
對於沒有Spring開發經驗的團隊來講,Spring Boot是否是一種可行的選擇?固然可行!
你指望的代碼基礎很簡單嗎?
若是你不須要Spring Boot提供的全部功能。可能你對依賴注入和奇妙的自動配置不感興趣。你只想寫一些簡單的REST API。
這裏你有一個選擇——Spring Boot做爲基本REST API來講仍然很棒,可是你能夠給像Javalin和SpaveJava這樣的microframeworks提供機會。
我已經詳細闡述了這一點-研探簡單的Java Microservices。
Spring Boot是否適合簡單的REST API?固然能夠,但也能夠查看microframeworks相關資料!
總結
對於大多數的現代服務器端開發來講,Spring Boot是一個不錯的選擇。這真的很奇怪嗎?Spring Boot是很是流行的一個緣由!
不過,在你選擇Spring Boot以前,要確保你不是「若是你有一把錘子,一切看起來像個釘子」(若是你有決心,有毅力(有能力之類的),那麼你幹什麼事情都會很容易,任何事情看起來也會很簡單,會迎刃而解),用正確的工具來作這項工做。尤爲是當進入無服務器或試圖寫一些「簡單」的事情的時候。