?
SpringBoot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。
?
該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。
?
通過這種方式,SpringBoot致力于在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。
?
SpringBoot簡介
SpringBoot是Spring家族中的一個全新的框架,它用來簡化Spring應用程序的創建和開發過程,也可以說SpringBoot能簡化我們之前采用SpringMVC + Spring + MyBatis框架進行開發的過程。 在以往我們采用SpringMVC + Spring + MyBatis框架進行開發的時候,搭建和整合三大框架,我們需要做很多工作,比如配置web.xml,配置Spring,配置MyBatis,并將它們整合在一起等,而SpringBoot框架對此開發過程進行了革命性的顛覆,完全拋棄了繁瑣的xml配置過程,采用大量的默認配置簡化我們的開發過程。 所以采用SpringBoot可以非常容易和快速地創建基于Spring框架的應用程序,它讓編碼變簡單了,配置變簡單了,部署變簡單了,監控變簡單了。正因為 SpringBoot 它化繁為簡,讓開發變得極其簡單和快速,所以在業界備受關注。
?
SpringBoot的特性
● 能夠快速創建基于Spring的應用程序
● 能夠直接使用java main方法啟動內嵌的Tomcat服務器運行SpringBoot程序,不需要部署war包文件
● 提供約定的starter POM來簡化Maven配置,讓Maven的配置變得簡單
● 自動化配置,根據項目的Maven依賴配置,Springboot自動配置Spring、Spring mvc等
● 提供了程序的健康檢查等功能
● 基本可以完全不使用XML配置文件,采用注解配置
?
SpringBoot四大核心
● 自動配置 針對很多Spring應用程序和常見的應用功能,SpringBoot能自動提供相關配置
● 起步依賴 告訴SpringBoot需要什么功能,它就能引入需要的依賴庫
● Actuator 讓你能夠深入運行中的SpringBoot應用程序,一探SpringBoot程序的內部信息
● 命令行界面 這是SpringBoot的可選特性,主要針對Groovy語言使用; Groovy是一種基于JVM(Java虛擬機) 的敏捷開發語言,它結合了Python、Ruby和Smalltalk的許多強大的特性,Groovy 代碼能夠與Java代碼很好地結合,也能用于擴展現有代碼,由于其運行在JVM上的特性,Groovy可以使用其他Java語言編寫的庫。
?
SpringBoot開發版本推薦
● 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重要策略
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。