SpringBoot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,SpringBoot致力于在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。
SpringBoot是Spring家族中的一個全新的框架,它用來簡化Spring應用程序的創建和開發過程,也可以說SpringBoot能簡化我們之前采用SpringMVC + Spring + MyBatis框架進行開發的過程。
在以往我們采用SpringMVC + Spring + MyBatis框架進行開發的時候,搭建和整合三大框架,我們需要做很多工作,比如配置web.xml,配置Spring,配置MyBatis,并將它們整合在一起等,而SpringBoot框架對此開發過程進行了革命性的顛覆,完全拋棄了繁瑣的xml配置過程,采用大量的默認配置簡化我們的開發過程。
所以采用SpringBoot可以非常容易和快速地創建基于Spring框架的應用程序,它讓編碼變簡單了,配置變簡單了,部署變簡單了,監控變簡單了。正因為 SpringBoot 它化繁為簡,讓開發變得極其簡單和快速,所以在業界備受關注。
SpringBoot在國內的關注趨勢圖:http://t.cn/ROQLquP
● 能夠快速創建基于Spring的應用程序
● 能夠直接使用java main方法啟動內嵌的Tomcat服務器運行SpringBoot程序,不需要部署war包文件
● 提供約定的starter POM來簡化Maven配置,讓Maven的配置變得簡單
● 自動化配置,根據項目的Maven依賴配置,Springboot自動配置Spring、Spring mvc等
● 提供了程序的健康檢查等功能
● 基本可以完全不使用XML配置文件,采用注解配置
● 自動配置
針對很多Spring應用程序和常見的應用功能,SpringBoot能自動提供相關配置
● 起步依賴
告訴SpringBoot需要什么功能,它就能引入需要的依賴庫
● Actuator
讓你能夠深入運行中的SpringBoot應用程序,一探SpringBoot程序的內部信息
● 命令行界面
這是SpringBoot的可選特性,主要針對Groovy語言使用;
Groovy是一種基于JVM(Java虛擬機) 的敏捷開發語言,它結合了Python、Ruby和Smalltalk的許多強大的特性,Groovy 代碼能夠與Java代碼很好地結合,也能用于擴展現有代碼,由于其運行在JVM上的特性,Groovy可以使用其他Java語言編寫的庫。
● Springboot目前分為兩大版本系列,1.x系列和2.x系列
● 如果是使用eclipse,推薦安裝Spring Tool Suite (STS)插件
● 如果使用IDEA旗艦版,自帶了SpringBoot插件
● 推薦使用Maven 3.3+,Maven目前最新版本為3.6.0(2019.01)
● 推薦使用Java 8,SpringBoot 1.x系列的版本兼容Java 6,SpringBoot 2.x系列需要至少Java8
SpringBoot框架中還有兩個非常重要的策略:開箱即用和約定優于配置。開箱即用,Outofbox,是指在開發過程中,通過在MAVEN項目的pom文件中添加相關依賴包,然后使用對應注解來代替繁瑣的XML配置文件以管理對象的生命周期。這個特點使得開發人員擺脫了復雜的配置工作以及依賴的管理工作,更加專注于業務邏輯。約定優于配置,Convention over configuration,是一種由SpringBoot本身來配置目標結構,由開發者在結構中添加信息的軟件設計范式。這一特點雖降低了部分靈活性,增加了BUG定位的復雜性,但減少了開發人員需要做出決定的數量,同時減少了大量的XML配置,并且可以將代碼編譯、測試和打包等工作自動化。
SpringBoot應用系統開發模板的基本架構設計從前端到后臺進行說明:前端常使用模板引擎,主要有FreeMarker和Thymeleaf,它們都是用Java語言編寫的,渲染模板并輸出相應文本,使得界面的設計與應用的邏輯分離,同時前端開發還會使用到Bootstrap、AngularJS、JQuery等;在瀏覽器的數據傳輸格式上采用Json,非xml,同時提供RESTfulAPI;SpringMVC框架用于數據到達服務器后處理請求;到數據訪問層主要有Hibernate、MyBatis、JPA等持久層框架;數據庫常用MySQL;開發工具推薦IntelliJIDEA。
從最根本上來講,SpringBoot就是一些庫的集合,它能夠被任意項目的構建系統所使用。簡便起見,該框架也提供了命令行界面,它可以用來運行和測試Boot應用??蚣艿陌l布版本,包括集成的CLI(命令行界面),可以在Spring倉庫中手動下載和安裝。一種更為簡便的方式是使用Groovy環境管理器(Groovy enVironment Manager,GVM),它會處理Boot版本的安裝和管理。Boot及其CLI可以通過GVM的命令行gvm install springboot進行安裝。在OS X上安裝Boot可以使用Homebrew包管理器。為了完成安裝,首先要使用brew tap pivotal/tap切換到Pivotal倉庫中,然后執行brew install springboot命令。
要進行打包和分發的工程會依賴于像Maven或Gradle這樣的構建系統。為了簡化依賴圖,Boot的功能是模塊化的,通過導入Boot所謂的“starter”模塊,可以將許多的依賴添加到工程之中。為了更容易地管理依賴版本和使用默認配置,框架提供了一個parent POM,工程可以繼承它。