天天看點

spring boot入門:功能介紹

一、Spring Boot四大功能

Spring Boot将很多魔法帶入了Spring應用程式的開發之中,其中最重要的是以下四個核心。

  • 自動配置:針對很多Spring應用程式常見的應用功能,Spring Boot能自動提供相關配置。
  • 起步依賴:告訴Spring Boot需要什麼功能,它就能引入需要的庫。
  • 指令行界面:這是Spring Boot的可選特性,借此你隻需寫代碼就能完成完整的應用程式,無需傳統項目建構。
  • Actuator:讓你能夠深入運作中的Spring Boot應用程式,一探究竟。

二、功能介紹

1. 自動配置

在任何Spring應用程式的源代碼裡,你都會找到Java配置或XML配置(抑或兩者皆有),它們為應用程式開啟了特定的特性和功能。舉個例子,如果你寫過用JDBC通路關系型資料庫的應用程式,那你一定在Spring應用程式上下文裡配置過JdbcTemplate這個Bean。

既然它如此常見,那為什麼還要你去寫呢?

Spring Boot會為這些常見配置場景進行自動配置。如果Spring Boot在應用程式的Classpath裡發 現H2資料庫的庫,那麼它就自動配置一個嵌入式H2資料庫。如果在Classpath裡發現JdbcTemplate,那麼它還會為你配置一個JdbcTemplate的Bean。你無需操心那些Bean的配置,Spring Boot會做好準備,随時都能将其注入到你的Bean裡。

Spring Boot的自動配置遠不止嵌入式資料庫和JdbcTemplate,它有大把的辦法幫你減輕配置負擔,這些自動配置涉及Java持久化API(Java Persistence API,JPA)、Thymeleaf模闆、安全和Spring MVC。

2.起步依賴

向項目中添加依賴是件富有挑戰的事。你需要什麼庫?它的Group和Artifact是什麼?你需要哪個版本?哪個版本不會和項目中的其他依賴發生沖突?

舉個例子,假設你正在用Spring MVC構造一個REST API,并将JSON(JavaScript Object Notation)作為資源表述。此外,你還想運用遵循JSR-303規範的聲明式校驗,并使用嵌入式的Tomcat伺服器來提供服務。要實作以上目标,你在Maven或Gradle裡至少需要以下8個依賴:

  • org.springframework:spring-core
  • org.springframework:spring-web
  • org.springframework:spring-webmvc
  • com.fasterxml.jackson.core:jackson-databind
  • org.hibernate:hibernate-validator
  • org.apache.tomcat.embed:tomcat-embed-core
  • org.apache.tomcat.embed:tomcat-embed-el
  • org.apache.tomcat.embed:tomcat-embed-logging-juli

    不過,如果打算利用Spring Boot的起步依賴,你隻需添加Spring Boot的Web起步依賴(org.springframework.boot:spring-boot-starter-web),僅此一個。它會根據依賴傳遞把其他所需依賴引入項目裡,你都不用考慮它們。

    比起減少依賴數量,起步依賴還引入了一些微妙的變化。向項目中添加了Web起步依賴,實際上指定了應用程式所需的一類功能。因為應用是個Web應用程式,是以加入了Web起步依賴。與之類似,如果應用程式要用到JPA持久化,那麼就可以加入jpa起步依賴。如果需要安全功能,那就加入security起步依賴。簡而言之,你不再需要考慮支援某種功能要用什麼庫了,引入相關起步依賴就行。

3.指令行界面

Spring Boot CLI是Spring Boot的非必要組成部分。更友善快速的開發應用程式,因為我隻在eclipse下使用sprong boot,沒有對指令行界面進行學習研究,有興趣的同學可以自行搜尋檢視。

4.Actuator

Spring Boot的最後一塊“拼圖”是Actuator,其他幾個部分旨在簡化Spring開發,而Actuator則要提供在運作時檢視應用程式内部情況的能力。安裝了Actuator就能窺探應用程式的内部情況了,包括如下細節:

  • Spring應用程式上下文裡配置的Bean
  • Spring Boot的自動配置做的決策
  • 應用程式取到的環境變量、系統屬性、配置屬性和指令行參數
  • 應用程式裡線程的目前狀态
  • 應用程式最近處理過的HTTP請求的追蹤情況
  • 各種和記憶體用量、垃圾回收、Web請求以及資料源用量相關的名額

    Actuator通過Web端點和shell界面向外界提供資訊。如果要借助shell界面,你可以打開SSH(Secure Shell),登入運作中的應用程式,發送指令檢視它的情況。

繼續閱讀