2013年12月12日,spring發佈了4.0版本。這個原本只是做爲Java平臺上的控制反轉容器的庫,通過將近10年的發展已經成爲了一個巨無霸產品。不過其依靠良好的分層設計,每一個功能模塊都能保持較好的獨立性,是Java平臺不可多得的好用的開源應用程序框架。 Spring的4.0版本能夠說是一個重大的更新,其全面支持Java8,而且對Groovy語言也有良好的支持。另外引入了很是多的新項目,好比Spring boot,Spring Cloud,Spring WebSocket等。java
Spring因爲其繁瑣的配置,一度被人成爲「配置地獄」,各類XML、Annotation配置,讓人眼花繚亂,並且若是出錯了也很難找出緣由。Spring Boot項目就是爲了解決配置繁瑣的問題,最大化的實現convention over configuration(約定大於配置)。熟悉Ruby On Rails(ROR框架的程序員都知道,藉助於ROR的腳手架工具只需簡單的幾步便可創建起一個Web應用程序。而Spring Boot就至關於Java平臺上的ROR。程序員
Spring Boot的特性有如下幾條:web
建立獨立Spring應用程序spring
嵌入式Tomcat,Jetty容器,無需部署WAR包markdown
簡化Maven及Gradle配置mvc
儘量的自動化配置Spring框架
直接植入產品環境下的實用功能,好比度量指標、健康檢查及擴展配置等spring-boot
無需代碼生成及XML配置工具
目前Spring Boot的版本爲1.2.3,須要Java7及Spring Framework4.1.5以上的支持。若是想在Java6下使用它,須要一些額外的設置。測試
若是你想建立一個基於Spring的Web應用,只是簡單的在頁面中輸出一個’Hello World’,按照以前的老方式,你須要建立如下文件:
web.xml : 配置使用Spring servlet,以及web其它配置;
spring-servlet.xml:配置Spring servlet的配置;
HelloController.java: controller。
若是你想運行它的話,須要將生成的WAR包部署到相應的Tomcat或者Jetty容器中才行,這也須要相應的配置。
若是使用Spring Boot的話,咱們只須要建立HelloController.java。
而後藉助於Spring Boot爲Maven和Gradle提供的插件來生成Jar包之後直接運行java -jar便可,簡單易用。
上面提過Spring Boot對Maven及Gradle等構建工具支持力度很是大。其內置一個’Starter POM’,對項目構建進行了高度封裝,最大化簡化項目構建的配置。另外對Maven和Gradle都有相應的插件,打包、運行無需編寫額外的腳本。
Spring Boot不止對web應用程序作了簡化,還提供一系列的依賴包來把其它一些工做作成開箱即用。下面列出了幾個經典的Spring Boot依賴庫。
spring-boot-starter-web:支持全棧web開發,裏面包括了Tomcat和Spring-webmvc。
spring-boot-starter-mail:提供對javax.mail的支持.
spring-boot-starter-ws: 提供對Spring Web Services的支持
spring-boot-starter-test:提供對經常使用測試框架的支持,包括JUnit,Hamcrest以及Mockito等。
spring-boot-starter-actuator:支持產品環境下的一些功能,好比指標度量及監控等。
spring-boot-starter-jetty:支持jetty容器。
spring-boot-starter-log4j:引入默認的log框架(logback)
Spring Boot提供的starter比這個要多,詳情請參閱文檔:Starter POMs章節。
若是你不喜歡Maven或Gradle,Spring提供了CLI(Command Line Interface)來開發運行Spring應用程序。你可使用它來運行Groovy腳本,甚至編寫自定義命令。安裝Spring CLI有多種方法,具體請看:安裝Spring Boot Cli章節。
Spring Boot提供的功能還有不少,好比對MVC的支持、外部Properties的注入,日誌框架的支持等。這裏就不詳述了。感興趣的能夠查看其文檔來獲取詳細的信息。
若是你想在你的項目中使用Spring,那麼最好把Spring Boot設爲標配,由於它真的很方面開發,不過你也須要仔細閱讀它的文檔,避免不知不覺掉入坑中。