一:Spring Boot 、 Spring MVC 、Spring對比
首先你需要明白一件事情:Spring Boot項目目的並不是替換Spring、SpringMVC,而是使他們用起來更加簡單。
Spring 框架
Spring框架最核心的特性就是依賴注入DI(Dependency Injecttion)和控制反轉IOC(Inversion Of Control)。如果你能夠合理的使用DI和IOC,可以開發出鬆耦合、擴展性好的的應用程式。
Spring MVC
Spring MVC提供了一種友好的方式來開發Web應用程式。 通過使用諸如Dispatcher Servlet,ModelAndView和View Resolver,可以輕鬆開發Web應用程式。
Spring Boot
Spring 和 Spring MVC最大的弊病在於存在大量的配置,並且這些配置在不同的項目中具有很高的相似性。從而導致重複配置,繁瑣而且雜亂!
Spring Boot期望通過結合自動配置和starters來解決了這個問題。 另外,Spring Boot還提供了一些功能,可以更快地構建可用於生產環境的應用程式。
二、Spring Boot 自動配置
Spring和Spring MVC應用程式裡面有大量的XML或Java Bean配置。Spring Boot為解決這個問題,提供一種新的解決方案,新的思維方式。
springboot思考的方式:是不是可以更加智能一點,當Spring中加入一些新的jar包,可以自動的配置一些bean。 比如:Spring MVC JAR位於類路徑中時,自動配置Dispatcher Servlet。
三、什麼是Spring Boot Starter?
Spring Boot Starter是一組被依賴第三方類庫的集合。
如果你要開發一個web應用程式,就通過包管理工具(如maven)引入spring-boot-starter-web就可以了,而不用分別引入下面這麼多依賴類庫,spring-boot-starter-web一次性幫你引入下面的這些常用類庫。
Spring — spring 核心, beans, context上下文, AOP面向切面
Web MVC — Spring MVC
Jackson — JSON數據的序列化與反序列化
Validation — Hibernate參數校驗及校驗API
嵌入式 Servlet Container — Tomcat
日誌框架Logging — logback, slf4j
四、什麼是Spring Boot Starter Parent
所有的Spring Boot項目默認使用spring-boot-starter-parent作為應用程式的父項目。
繼承父項目的好處在於: 統一java版本配置和其他的一些依賴類庫的版本。也就是說,你引入的第三方類庫不要加版本號,父項目替你管理版本,而且是經過兼容性測試的。比你自己隨便引入一個版本兼容性更好。
當然父項目只能幫你管理一些常用類庫的版本,如果你引入一些不常用的jar,還是要自己管理版本號及兼容性!
五、快速創建啟動項目
相信很多使用過Spring框架的架構師,在項目啟動初期,為了搭建一個兼容性良好、使用方便的架構需要花費很多的精力。現在,你可以使用一個UI界面來幫助你創建基本的啟動項目!方便快捷!
六、嵌入式web容器
Spring boot打成jar包,默認包含嵌入式的web容器:tomcat。你可以簡單的使用如下命令啟動一個web服務:
java -jar springboot-demo.jar
這更有利於微服務的部署及微服務的構建、啟動、擴容。Spring Boot還支持Jetty和Undertow作為web容器。
七、Spring Data
Spring Data的目標是提供一種更友好的方式或者是API來存取數據。包括對於關係型資料庫和NOSQL數據的支持。比如:
Spring Data JPA — 關係型資料庫操作的API,友好且易於使用
Spring Data MongoDB -MongoDB的操作API
Spring Data REST — 從持久層Repositories自動生成服務層API,暴露 REST APIs 接口。超級好用!
當然,Spring Data還有更多好用的特性和支持等待你去探索!
寫在最後
通過搜-suo-查詢「字母哥博客」,更多精品知識等待你!
本號只做持續的知識輸出,希望您能關注、評論、轉發!您的支持是我不竭的創作動力!讓知識產生價值、讓程式設計師改變世界!