本文篇幅較長,建議合理利用右上角目錄進行查看(若是沒有目錄請刷新)。java
本文是對《Spring Boot 實戰第4版》的總結,你們也能夠去仔細研讀該書web
注意,書中使用的Spring Boot版本並非2.0,可是我這裏的代碼是基於Spring Boot2.0的,有一些地方會有出入spring
使用Groovy代碼編寫HelloWorld.groovy文件shell
@RestController class HelloController { @RequestMapping("/") def hello() { return "Hello World" } }
使用Spring Boot的命令行界面(Command Line Interface,CLI)運行數據庫
$ spring run HelloController.groovyapache
這個web程序便可正常運行編程
自動配置bootstrap
針對不少Spring應用程序常見的應用功能,Spring Boot能自動提供相關配置tomcat
例如:經過JDBC訪問一個關係型數據庫安全
Spring:須要手動建立JdbcTemplate Bean和DataSource Bean
Spring Boot:檢測到Classpath中有JdbcTemplate,自動建立JdbcTemplate Bean
詳見第二章
起步依賴
告訴Spring Boot須要什麼功能,它就能引入須要的庫
例如:但願用Spring MVC構造一個REST API,並將JSON(JavaScript Object Notation)做爲資源表述。此外,還想運用遵循JSR-303規範的聲明式校驗,並使用嵌入式的Tomcat服務器來提供服務
Spring:引入至少8個依賴
Spring Boot:引入一個起步依賴,告訴Spring Boot即將建立Web程序,Spring Boot會自動加入所需依賴
Spring Boot會管理好這些庫之間的版本關係,不會出現不兼容的狀況
命令行界面
這是Spring Boot的可選特性,藉此你只需寫代碼就能完成完整的應用程序,無需傳統項目構建
像上面的Spring Boot項目示例代碼中,代碼沒有import,Spring Boot CLI卻能指導RequestMapping和RestController來自哪一個包
CLI能檢測到你使用了哪些類,它知道要向Classpath中添加哪些起步依賴才能讓它運轉起來。一旦那些依賴出如今Classpath中,一系列自動配置就會接踵而來,確保啓用DispatcherServlet 和Spring MVC,這樣控制器就能響應HTTP請求
Spring Boot CLI是Spring Boot的非必要部分,雖大大簡化了開發,可是引入了一套不太常規的開發模型
若是不喜歡或者不須要這種開發模式,也能夠拋棄Spring Boot的這個部分
Actuator
提供在運行時檢視Spring Boot應用程序內部狀況的能力,內容包括:
Actuator經過Web端點和shell界面向外界提供信息。若是要藉助shell界面,你能夠打開SSH(Secure Shell),登入運行中的應用程序,發送指令查看它的狀況
根本上說,Spring Boot項目只不過是一個普通的Spring項目,只是使用了Spring Boot的起步依賴和自動配置
如何建立Spring Boot項目
一、使用Spring Boot CLI(暫略)
幾種安裝方法:
二、Spring Initializr初始化Spring Boot項目
若是仍是但願使用傳統Java項目結構來開發項目,則能夠採起這種方式
Spring Initializr的幾種使用方法(具體使用方法暫略):
三、使用IntelliJ IDEA中Spring Initializr建立一個Spring Boot項目的項目結構簡介
實際生成的項目,也是一個普通的Spring項目
內容包括:
其中:
主程序使用了@SpringBootApplication註解,使得此「普通的Spring項目」以Spring Boot的形式運行
測試程序使用了@SpringBootTest註解,使得單元測試可以支持Spring Boot的形式
啓動引導Spring
@SpringBootApplication開啓了Spring的組件掃描和Spring Boot的自動配置功能
實際上,@SpringBootApplication將三個有用的註解組合在了一塊兒
測試Spring Boot應用程序
@RunWith是指定JUnits所使用的測試運行器,全部測試都由這個運行器運行;這裏指定了Spring的運行器,因此測試時能夠獲得Spring的上下文
@SpringBootTest是SpringBoot項目測試的註解(未有詳解)
配置應用程序屬性
Initializr生成了一個空的application.properties文件,這裏能夠配置Spring Boot自動配置的一些屬性
這個文件也能夠刪除,可是存在時,Spring Boot會自動檢測到這個文件並應用其中的設置
當使用Gradle或Maven進行初始化項目時,所生成的構建文件中,會包含一個如spring-boot-maven-plugin的一個插件
藉助這個插件,咱們能夠直接經過run便可啓動項目,也能夠經過這個插件把程序打包成一個jar包
一、
啓用Actuator
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
7.1.一、查看配置明細
一、得到Bean裝配報告
訪問/actuator/beans端點,這裏能夠查看Spring應用上下文中都有哪些Bean
每一個Bean都有5類信息
二、詳解自動配置
訪問/actuator/autoconfig端點,這裏能夠某個Bean被建立或沒有被建立的緣由。
三、查看配置屬性
訪問/actuator/env端點,能夠查看全部環境屬性以及值的來源,還有哪些屬性注入了Bean
訪問/actuator/env/server.port端點,最後是屬性名稱,能夠查看某一個屬性的配置屬性
訪問/actuator/env/configprops端點,能夠查看有哪些環境屬性能夠設置,以及他們的值
四、生成端點到控制器的映射
訪問/actuator/mappings端點,能夠查看有控制器和哪些端點,以及他們的映射關係。
7.1.二、運行時度量