作者:肖朋偉
鏈接:https://blog.csdn.net/qq_40147863/article/details/84194493
什麼是 Spring Boot?
Spring Boot 是由 Pivotal 團隊提供的全新框架。Spring Boot 是所有基於 Spring Framework 5.0 開發的項目的起點。Spring Boot 的設計是為了讓你儘可能快的跑起來 Spring 應用程序並且儘可能減少你的配置文件。
設計目的:用來簡化新 Spring 應用的初始搭建以及開發過程。
從最根本上來講,Spring Boot 就是一些庫的集合,它能夠被任意項目的構建系統所使用。它使用 “習慣優於配置” (項目中存在大量的配置,此外還內置一個習慣性的配置)的理念讓你的項目快速運行起來。用大佬的話來理解,就是 spring boot 其實不是什麼新的框架,它默認配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,spring boot 整合了所有的框架,總結一下及幾點:
(1)為所有 Spring 開發提供一個更快更廣泛的入門體驗。
(2)零配置。無冗餘代碼生成和XML 強制配置,遵循“約定大於配置” 。
(3)集成了大量常用的第三方庫的配置, Spring Boot 應用為這些第三方庫提供了幾乎可以零配置的開箱即用的能力。
(4)提供一系列大型項目常用的非功能性特徵,如嵌入式服務器、安全性、度量、運行狀況檢查、外部化配置等。
(5)Spring Boot 不是Spring 的替代者,Spring 框架是通過 IOC 機制來管理 Bean 的。Spring Boot 依賴 Spring 框架來管理對象的依賴。Spring Boot 並不是Spring 的精簡版本,而是為使用 Spring 做好各種產品級準備
Spring Boot 在應用中的角色
- Spring Boot 是基於 Spring Framework 來構建的,Spring Framework 是一種 J2EE 的框架(什麼是 J2EE?)
- Spring Boot 是一種快速構建 Spring 應用
- Spring Cloud 是構建 Spring Boot 分佈式環境,也就是常說的雲應
- Spring Boot 中流砥柱,承上啟下
環境準備
(1)JDK 環境必須是 1.8 及以上,傳送門:jdk1.8.191 下載
(2)後面要使用到 Maven 管理工具 3.2.5 及以上版本,所以會先介紹 Maven 的安裝與配置
(3)開發工具建議使用 IDEA,也可以 MyEclips
Maven 安裝與環境變量配置
(1)Maven 安裝:
在官網下載:http://maven.apache.org/download.cgi
(2)Maven 配置環境變量:
解壓到一個路徑,然後配置環境變量:
- 新建變量名:MAVEN_HOME 變量值:D:\server\apache-maven-3.6.0(這是我的 MAVEN 路徑)
- 編輯變量名:Path 在最前面加上:%MAVEN_HOME%\bin
(3)檢查是否配置成功:
在命令行輸入:
<code>mvn -V/<code>
然後會一大堆東西:
(4)配置 maven 倉庫:
1.打開 maven 文件夾下的 config 文件夾下的 settings.xml;
2.找到 localRepository 標籤,此時是被註釋掉的,我們解除註釋,然後配置一個路徑,例如:D:/space/MavenRepository/maven_jar,這樣以後 MAVEN 管理下載的jar 包都會在這個路徑下。
【注意】:注意結點的位置,先找到註釋掉的部分,貼在下面
<code>D:\space\MavenRepository\maven_jar/<code>
3.配置遠程倉庫,找到 mirrors 標籤
<code> aliyun aliyun Maven * http://maven.aliyun.com/nexus/content/groups/public/ /<code>
4.當然我們需要先建這樣一個目錄結構,然後還要把settings.xml 複製一份到 D:/space/MavenRepository 下
(5)在 idea 配置 maven:
點擊【File】>【Settings】>搜索【Maven】,按截圖配置安裝目錄和選擇剛剛 settings 配置文件;
選擇完settings之後,本地倉庫自動改成settings文件中配置的;點擊apply,再點擊ok即配置完成。
使用 idea 快速搭建 Spring Boot
第一步:新建 Spring Initializr 項目:
(1)選擇 Spring Initializr
(2)選擇 SDK,點擊【new】這裡就是使用 JAVA SDK 要求版本 1.8+,選擇你默認安裝在 C:\Program Files\Java\jdk1.8.0_191 目錄:
(3)然後選擇默認的 url (不用管)點擊【Next】:
(4)然後填寫一下項目的信息:
(5)先勾選上 Web 依賴:
(6)勾選 SQl 下的 MySQL,MyBatis 依賴:
(根據自己的項目選擇,後面可加)
(7)選擇好項目的位置,點擊【Finish】:
(8)如果是第一次配置 Spring Boot 的話可能需要等待一會兒 IDEA 下載相應的 依賴包,默認創建好的項目結構如下:
項目結構還是看上去挺清爽的,少了很多配置文件,我們來了解一下默認生成的有什麼:
- SpringbootApplication:一個帶有 main() 方法的類,用於啟動應用程序
- SpringbootApplicationTests:一個空的 Junit 測試了,它加載了一個使用 Spring Boot 字典配置功能的 Spring 應用程序上下文
- application.properties:一個空的 properties 文件,可以根據需要添加配置屬性
- pom.xml:Maven 構建說明文件
第二步:HelloController
在 【main/java/com.xpwi.springboot】包下新建一個【HelloController】:
第三步:利用 IDEA 啟動 Spring Boot
(1)我們回到 SpringbootApplication 這個類中,然後右鍵點擊運行:
(2)會提示 Maven 導包,點擊 import
(3)注意:我們之所以在上面的項目中沒有手動的去配置 Tomcat 服務器,是因為 Spring Boot 內置了 Tomcat
等待一會兒就會看到下方的成功運行的提示信息:
(4)此時,可以看到我們的 Tomcat 運行在 8080 端口,我們來訪問下面地址試一下:
<code>http://localhost:8080/hello/<code>
Spring Boot 項目文件介紹
一、解析 pom.xml 文件:
(1)讓我們來看看默認生成的 pom.xml 文件中到底有些什麼:
(2)我們可以看到一個比較陌生一些的標籤 ,這個標籤是在配置 Spring Boot 的父級依賴:
<code> org.springframework.boot spring-boot-starter-parent 2.1.0.RELEASE /<code>
有了這個,當前的項目才是 Spring Boot 項目,spring-boot-starter-parent 是一個特殊的 starter ,它用來提供相關的 Maven 默認依賴,使用它之後,常用的包依賴就可以省去 version 標籤。
關於具體 Spring Boot 提供了哪些 jar 包的依賴,我們可以查看本地 Maven 倉庫下:\repository\org\springframework\boot\spring-boot-dependencies\2.1.0.RELEASE\spring-boot-dependencies-2.1.0.RELEASE.pom 文件來查看,挺長的…
二、應用入口類 SpringbootApplication.java
Spring Boot 項目通常有一個名為 *Application 的入口類,入口類裡有一個 main 方法, 這個 main 方法其實就是一個標準的 Javay 應用的入口方法。
@SpringBootApplication 是 Spring Boot 的核心註解,它是一個組合註解,該註解組合了:@Configuration、@EnableAutoConfiguration、@ComponentScan;若不是用 @SpringBootApplication 註解也可以使用這三個註解代替。
其中,@EnableAutoConfiguration 讓 Spring Boot 根據類路徑中的 jar 包依賴為當前項目進行自動配置,例如,添加了 spring-boot-starter-web 依賴,會自動添加 Tomcat 和 Spring MVC 的依賴,那麼 Spring Boot 會對 Tomcat 和 Spring MVC 進行自動配置。
Spring Boot 還會自動掃描 @SpringBootApplication 所在類的同級包以及下級包裡的 Bean ,所以入口類建議就配置在 grounpID + arctifactID 組合的包名下(這裡為 com.xpwi.springboot 包)
三、Spring Boot 的配置文件:
Spring Boot 使用一個全局的配置文件 application.properties 或 application.yml,放置在【src/main/resources】目錄或者類路徑的 /config 下。
Spring Boot 不僅支持常規的 properties 配置文件,還支持 yaml 語言的配置文件。yaml 是以數據為中心的語言,在配置數據的時候具有面向對象的特徵。
Spring Boot 的全局配置文件的作用是對一些默認配置的配置值進行修改。
修改 properties 配置文件實例:
(1)打開 resources 下的 application.properties
(2)在這裡我們可以設置訪問的端口,將 Tomcat 默認端口設置為 8080 (默認的不修改) ,並將默認的訪問路徑從 “/” 修改為 “/cn” 時,再訪問 http://localhost:8080/ 是什麼都沒有的,此時要訪問 hello 是要使用 http://localhost:8080/cn/hello
注意:如果是 yml 需要在 “:” 後加一個空格,幸好 IDEA 很好地支持了 yml 文件的格式有良好的代碼提示;
我們可以自己配置多個屬性
(3)使用 yml 文件作為配置文件,我們直接把 .properties 後綴的文件刪掉,使用 .yml 文件來進行簡單的配置
(4)在然後使用在我們的 HelloController.java 類中使用 @Value 來獲取配置屬性,代碼(請看註釋):
(5)重啟 Spring Boot ,輸入地址:http://localhost:8080/hello 能看到正確的結果:
【注意】:此時如果你第一次使用 idea 出現中文亂碼,解決辦法:
(6)【注意】:我們並沒有在 yml 文件中註明屬性的類型,而是在使用的時候定義的。你也可以在配置文件中使用當前配置:
(7)任然可以得到正確結果.
(8)【問題】:這樣寫配置文件繁瑣而且可能會造成類的臃腫,因為有許許多多的 @Value 註解。
可以,封裝配置信息
封裝配置信息使用方法:
(1)application.yml 文件內容如下:
(2)新建 author.java 和 HelloController.java 同級,內容如下:
(3)此時可能會報錯,如果報錯,打開 pom.xml 文件,添加內容(注意位置):
<code> org.springframework.boot spring-boot-configuration-processor true /<code>
(4)重新編寫 HelloController 類,內容如下:
(5)重啟 Spring Boot,訪問瀏覽器:
<code>http://localhost:8080/hello/<code>
【提示】:我們可以把配置信息封裝成一個類,首先在我們的 name 和 age 前加一個 student 前綴,然後新建一個 StudentProperties 的類用來封裝這些信息,並用上兩個註解:
- @Component:表明當前類是一個 Java Bean
- @ConfigurationProperties(prefix = “author”):表示獲取前綴為 author 的配置信息