我一直在試着理解Spring Boot,並可能將我的項目遷移到它。但是除了嵌入式Tomcat之外,我並沒有獲得它的真正優勢。您能否向我解釋Spring Boot與普通Spring相比的真正實力?Spring Boot的優勢
回答
真正容易的是從無到有,並且有大量有用的默認值。
如果你想遷移一些現有的項目,這很可能會產生許多難以遷移的怪癖,這並不是那麼容易。
使用配置/ jar-dependencies中包含的默認值進行引導是Spring引導的真正優勢!快速完成工作!
它只是Spring框架的另一個項目,其中的東西看起來很簡單,並且對安全性,數據,社交等等的強大支持都是您希望爲您的應用程序提供的所有功能。
如果您更喜歡對像我這樣的XML配置的註釋,那麼您可能使用@Configuration進行配置,使用@ComponentScan進行依賴注入和@EnableAutoConfiguration來告訴Spring猜測默認值並繼續工作。 @SpringBootApplication註釋等同於使用@Configuration,@EnableAutoConfiguration和@ComponentScan及其默認屬性。因此,事情進一步簡化,只需一個註釋就可以完成3的工作。
最大的優點是基於它所發現的內容和嵌入式服務器的開箱即用配置(可以讓一個jar運行它並轉至localhost:8080
以查看結果旁邊),它有metrics
,health checks
,externalised configuration
等
在我看來是一個用於構建雲微服務的完美工具。
從Spring Boot Page引用,它具有以下特點:
- 創建獨立的Spring應用
- 嵌入的Tomcat,Jetty的或暗潮直接(無需部署WAR文件)
- 提供自以爲是「 Starter'POM來簡化您的Maven配置
- 自動配置Spring,只要有可能
- 提供生產就緒功能,如公制S,健康檢查和外部配置
- 絕對沒有代碼生成和爲XML配置沒有要求
對於spring-boot,「XML配置沒有要求」部分嗎?是不是可以通過java配置類來配置所有的東西而不使用spring-boot? – kgautron 2016-06-13 15:27:31
@kgautron不,可以使用基於Java的配置,而無需使用彈簧引導。 – Arpit 2016-06-13 16:15:44
春季靴子/春天是雙刃劍。主要取決於在項目中工作的開發人員。因爲春天的特點很豐富;它可以很快與開發人員一起失控。您需要更嚴格地控制哪些功能應該用於什麼目的,否則最終會導致不適用。整體Spring不再輕量級了,每發佈一大堆功能都會被添加,如果這些功能被拖入其中以便使用它,應用程序將不再可維護,它很難快速進行更改 – webjockey 2017-12-14 00:45:02
最大的一座是春天啓動與微服務的概念一致,可以從運行任何地方的容器雲。這可能是因爲springboot以下性質
- 佔地面積小
- 獨立服務
- 更容易從容器中推出,每個服務可以在其自己的容器(如搬運工)
- 易於配置和完全從腳本部署。適合在雲中進行自動縮放和部署。
在主動開發中,spring引導具有保留複雜xml文件配置的優點。
1.嵌入式tomcat放棄web.xml配置;
2.spring-boot安全性丟棄applicationcontext-security.xml配置;
3.spring-boot webservice放棄applicationcontext-ws.xml配置;
4.spring-boot mvc放棄applicationcontext.xml配置;
5.spring-boot數據源(包括Relational Database和nosql數據庫)會丟棄applicationcontext.xml配置,即使有多個數據源。
捨棄這個配置文件容易我們發展,提高效率。 SpringBoot的
優點:
- 無需創建樣板配置SpringBoot入門的
- 大量快速啓動和運行
- DevTools到AUTORESTART上的代碼/配置更新服務器的
- 嵌入式Tomcat/Jetty/Undertow支持
- 更容易定製應用程序屬性
- 使用平臺-BOM輪廓特定屬性
- 更容易依賴管理的易管理
這裏有什麼SpringBoot的優勢,以及如何SpringBoot一些工作我的文章。
- 1. Spring Dot Net Remoting的優勢
- 2. 優化Spring Boot JPA查詢
- 3. Spring WebFlux比標準Spring Boot,TomCat,Jetty,Servlet 3.1,Netty有什麼優勢?
- 4. Liberty Spring Boot vs Spring Boot
- 5. 優勢
- 6. 優勢
- 7. 優勢
- 8. 優勢
- 9. 優勢Activator.CreateInstance的
- 10. BTREE的優勢?
- 11. spring-boot-starter-jta-atomikos和spring-boot-starter-batch
- 12. MySQLi優於MySQL的優勢
- 13. Android上的Spring Boot?
- 14. Spring Boot中的WebMvcTest
- 15. WebLogic中的Spring Boot
- 16. 優勢B樹+的
- 17. Jquery Templates的優勢
- 18. nuSOAP WebService的優勢?
- 19. 優勢VS ReSharper的
- 20. Enum的Java優勢
- 21. Spring Boot java.lang.NoClassDefFoundError
- 22. Spring Boot&Batch Schedule
- 23. Spring Boot和Swagger
- 24. Spring-Boot CommandLineRunner UnitTest
- 25. Dockerize Spring Boot App
- 26. Kotlin&Spring Boot @ConfigurationProperties
- 27. Spring boot + redis
- 28. Kotlin spring-boot @ConfigurationProperties
- 29. Spring Boot Cache TTL
- 30. Docker和Spring Boot
的人顯著數感興趣的問題,一堆人決定關閉的問題,因爲它是基於意見。說了很多關於stackoverflow – 2017-01-02 13:13:35
鑑於問題是關閉的,我想在2年後增加我的2美分,因爲我一直在觀察一些upvotes。目前,Spring Boot的主要優勢在於它如何適應基於容器的部署,基本上針對每個新的基礎架構來完成。如果沒有彈簧引導,很難在基於碼頭的容器中使用彈簧。 – 2017-05-02 11:11:45