1. 程式人生 > >Spring Boot快速入門必須知識總集

Spring Boot快速入門必須知識總集

SpringBoot是什麼?

springboot是spring家族中微型框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。

Spring Boot可以輕鬆建立獨立的,生產級的基於Spring的應用程式,您可以“執行”。

特徵:

  • 建立獨立的Spring應用程式
  • 直接嵌入Tomcat,Jetty或Undertow(無需部署WAR檔案)
  • 提供自以為是的“入門”依賴項以簡化構建配置
  • 儘可能自動配置Spring和第三方庫
  • 提供生產就緒功能,例如指標,執行狀況檢查和外部化配置
  • 絕對沒有程式碼生成,也不需要XML配置

SpringBoot要解決的問題?

隨著Java語言的慢慢發展,Java的開發顯得格外的笨重,繁多的配置,低下的開發效率,複雜的部署流程以及第三方技術整合難度非常大而且雜。

在上述環境中,SpringBoot營運而生,它使用“習慣由於配置”的理念讓你的專案快速的執行起來,使用SpringBoot很容易建立一個獨立執行。它內建Tomcat,Servlet,Spring等等基本開發的功能。

spring boot的優勢?

快速構建專案,敏捷式開發

專案可獨立執行,無須外部依賴Servlet容器。

對主流框架無配置支援,簡化開發,也可以修改預設值。

提供執行時的應用監控。極大的提高了開發、部署效率。

與spring cloud天然整合。

限制:將現有或傳統的Spring Framework專案轉換為Spring Boot應用程式是一個非常困難和耗時的過程。它僅適用於全新Spring專案。

什麼是微服務?

首先微服務並沒有一個官方的定義,想要直接描述微服務比較困難。

它是一種“軟體的架構風格”,一個應用應該是一組小型服務。各個小型服務執行在各自的環境中,通過http的方式進行互通。

微服務化的核心就是將傳統的一站式應用,根據業務拆分成一個一個的服務,徹底地去耦合,每一個微服務提供單個業務功能的服務,一個服務做一件事,從技術角度看就是一種小而獨立的處理過程,類似程序概念,能夠自行單獨啟動或銷燬,擁有自己獨立的資料庫

每一個功能元素都是一個可以獨立替換和可獨立升級的軟體單元。它的好處是就是可以任意組合。極大的增強了軟甲架構的靈活性。

開啟springboot第一個專案

環境準備:

1.Jdk8.0以上。

2.Maven3.x以上,需要設定jdk8的執行環境。

3.開發工具:sts、idea。

快速啟動一個springboot專案:

使用idea首先

填寫座標:

在這裡可以根據自己需要的什麼功能選擇什麼啟動器,我這裡就單選一個Web模組。

建立完成後目錄:

他會預設幫我們生成一個主程式類,我們可以直接通過主程式入口啟動springboot

預設在resources模板下面會生成一下幾個目錄和檔案。

static:主要用來儲存所有的靜態資源,包括js,css,image等。

templates:儲存所有的模板頁面。SpringBoot預設以jar包的方式來部署專案,所以預設是不支援jsp頁面的,但是可以使用模板引擎(freemarker,thymeleaf)。

application.properties:Spring Boot預設的配置檔案。預設情況下SpringBoot是不需要配置檔案的,但是可以通過這個類修改預設值。比如修改埠號。

application.properties或者application.yml將會是核心的配置檔案。

在SpringBoot中,必須繼承spring-boot-starter-parent這個包,這個是SpringBoot的預設配置資訊,極大的提高了我們的開發效率。

執行方式:

1.直接使用Idea執行主程式

2.使用maven命令打成jar包在控制檯使用 java -jar **.jar來執行。不需要另外安裝tomcat等其他工具,極大的簡化了部署流程。

注意事項:

在SpringBoot中,我們只需要使用@SpringBottApplication註解修飾入口方法類,然後執行main方法就可以啟動Springboot,非常方便。

注意:如果去掉@SpringBootApplication註解,則會執行錯誤。

我們主程式SpringbootHellowroldApplication.java是在package com.simple.springboot;下

預設它只會掃描到同包或者子包下。

SpringBoot啟動器

在SpringBoot中,有一個非常重要的概念,就叫“場景啟動器”,它幫助我們匯入對應模組正常執行所依賴的元件。SpringBoot將所有的功能場景都抽取出來,做成一個個的Starters(啟動器),只需要在專案中引入這些starter相關場景的所依賴的環境都會匯入進來。要什麼功能就匯入什麼樣的啟動器。

@SpringBootApplication

SpringBoot應用標註在某個類上說明這個類是SpringBoot的主配置類,SpringBoot就應該執行這個類的main方法來啟動SpringBoot應用。

該註解其實是一個組合註解,其中包含了一些其它的註解。

@SpringBootConfiguration翻譯下就是SpringBoot配置繼承自@Configuration,二者功能也一致,標註當前類是配置類,
並會將當前類內宣告的一個或多個以@Bean註解標記的方法的例項納入到spring容器中,並且例項名就是方法名

@EnableAutoConfiguration:翻一下就是開啟自動配置的意思,開啟自動配置功能。以前我們需要配置的東西,現在我們都不需要配置了,SpringBoot幫我們自動配置了。註解中又包含了兩個比較重要:

[email protected]:自動配置包,通過@Import(AutoConfigurationPackages.Registrar.class)類來指定對應的包。預設是將@SpringBootApplication所在的包以及該包下的所有子包匯入到容器中。

[email protected](AutoConfigurationImportSelector.class):匯入哪些元件的選擇器。將所有需要匯入的元件以全類名的方式返回,這些元件將會返回給一個List configurations集合中,這些類是各種元件的自動配置檔案,然後被新增到容器中。

springboot自動配置

SpringBoot中最核心的功能就是自動配置類,在SpringBoot中會載入大量的自動配置類。

我們可以檢視我們需要的功能有沒有SpringBoot預設寫好的自動配置類。如果有就不需要配置了,如果沒有,可以根據對應的XxxProperties類檢視相關的屬性

然後再配置檔案對修改對應的屬性值即可。

以@Conditional開頭的表示的是條件類。以Properties結尾的表示的是對應的屬性類

我們通過SpringBoot會載入大量的AutoConfiguration配置類,其中對應相關元件的配置資訊。

該類是通過全註解方式來配置相關的屬性。

在這個配置類中,我們也可以看到一些@Conditional開頭和以Properties結尾的類。

Conditional擴充套件:

在SpringBoot自動配置類中存在大量的@Conditional開頭的註解,這些註解的作用是當滿足某些條件時,該註解才會生效。


雖然預設情況下載入了非常多的自動配置類檔案,但是由於Conditional的限制,並不會載入所有的配置類。可以通過在application.properties檔案中設定debug=true開啟springboot的日誌資訊來檢視載入了哪些自動配置類


總結:

springboot是一個微服務框架,延續了spring框架的核心思想IOC和AOP,簡化了應用的開發和部署。

springboot 並不是用來替代 spring的解決方案,而是和 spring框架緊密結合用於提升 spring開發者體驗的工具。

歡迎大家和我一起學習Spring Boot構建微服務雲架構,我這邊會將近期研發的Spring Boot微服務雲架構的搭建過程和精髓記錄下來,幫助更多有興趣研發Spring Boot框架的朋友,大家來一起探討Spring Boot架構的搭建過程及如何運用於企業專案。

我本人邀約各大BATJ架構大牛共創Spring Boot構建微服務架構的交流社群。 (群號:364677697)歡迎各路架構師、開發者,學習與交流使用Spring Boot諸多強大元件的實戰經驗。

希望此文能幫到大家的同時,也聽聽大家的觀點。歡迎留言討論,加關注,分享你的高見!持續更新!

為什麼某些人會一直比你優秀,是因為他本身就很優秀還一直在持續努力變得更優秀,而你是不是還在滿足於現狀內心在竊喜!

合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!

  • To-陌霖Java架構

分享網際網路最新文章 關注網際網路最新發展