Spring Boot作為目前非常流行的微服務架構,深受網際網路企業的青睞,幾乎成為微服務中介軟體事實上的標準。有趣的是,Spring Boot專案的原意並非為微服務架構而生。從時間軸上分析,SpringBoot早在2013年就已問世,而微服務架構則由Martin Fowler等人於2014年才提出。更有意思的是,微服務架構和Spring Boot並非新興事物,不過在業界大肆宣傳後,兩者變得異常受人矚目,使得坐而論道者甚繁,作而行之者蓋寡,從而模糊了討論焦點。微服務架構作為一種細粒度的SOA,無論用何種方式表述,不過是名詞之爭,都無法解決現實中業務場景的複雜性。儘管Spring Boot是一種不錯的選擇,然而並非唯一的選擇,即使運用傳統的Java EE技術,或者使用Vert.x這類相對小眾的框架照樣也能實現。換言之,架構設計的好壞不在於理論和技術,而在於實施者對業務的理解和專業水平。如果不能做到以其昭昭,如何使人昭昭呢?
SpringBoot從14年釋出到現在越來越多公司在使用,它的約定大於設定特性讓他比SpringMVC更簡潔,特別是這幾年的微服務的流行讓SpringBoot成為了很多java系公司的首選。由於筆者嚴重的拖延症,3年前寫了兩節SpringBoot就石沉大海,今年決定重新拾起來,因為無論你是後端還是前端,Spring的整個體系都是非常值得去學習的。
目錄大綱
由於內容實在太多太全了,為了避免影響到大家的閱讀體驗,就不一一全部展示出來了...................................中間省略....Σ( ° △ °|||)︴
Spring、Spring Boot、Spring Cloud的關係
1. Spring
Spring框架(為解決企業應用開發的複雜性而建立的框架)為開發Java應用程式提供了全面的基礎架構支援。它提供了依賴注入和「開箱即用」的一些模組,如: Spring MVC、Spring JDBC、Spring Security、Spring AOP、Spring loC、Spring ORM、Spring Testo這些模組大大地縮短了應用程式的開發時間,提高了開發應用程式的效率。
2. Spring Boot
Spring Boot 是Spring框架的擴充套件和自動化,它消除了在Spring 中需要進行的XML( EXtensible Markup Language )檔案設定(若習慣XML設定,則依然可以使用),使得開發變得更快、更高效、更自動化。
3. Spring Cloud
Spring Cloud是一套分散式服務治理框架,它本身不提供具體功能性的操作,只專注於服務之間的通訊、熔斷和監控等。因此,需要很多元件來共同支援一套功能。 Spring Cloud主要用於開發微服務。
微服務是可以獨立部署、水平擴充套件、獨立存取的服務單元。Spring Cloud是這些微服務的「CTO( Chief Technical Officer)",它提供各種方案來維護整個生態。
4.三者的關係
從上面對三者的介紹中可以看出,Spring Boot其實是要依賴Spring的,並不是另起爐灶建立了一個全新的框架,它是Spring的自動化。Spring Cloud通過依賴Spring Boot來構建微服務應用。三者的關係如圖1-1所示。
搭建環境
和其他應用程式的開發一樣,開發Spring Boot應用程式也需要先搭建開發環境並設定好系統的環境變數,然後安裝開發工具進行開發。
安裝Java開發環境JDK
1.檢視系統資訊
Spring Boot的開發環境需要Java的JDK 1.8版本以上,可以在Oracle官方網站免費下載,在下載之前要確定電腦的系統資訊。這裡以Windows 10為例。
(1)在電腦桌面上用滑鼠右擊「我的電腦」,在彈出的選單中選擇「屬性」命令。
(2)開啟「系統」面板,在右邊顯示的是系統型別,如圖2-1所示(本圖只擷取了系統面板右邊的部分),是64位元的作業系統,這個資訊提示「下一步安裝的JDK,也需要下載對應的64位元安裝包」
2.下載安裝JDK軟體
(1)開啟Oracle官方網站。
(2)選擇適合自己電腦系統的版本進行下載(圖2-1所示的系統型別是64位元,所以這裡需要選擇64位元的JDK進行下載),單擊圖2-2中的方框處進行下載。
Maven的運作方式
打包成可執行的JAR包
必會的IDEA實用技能
IDEA是Java開發「神器」,它對開發者非常友好,使用它簡直可以做到人機一體。下面講解一些常用的功能,讓讀者認識IDEA是如何幫助開發者高效完成開發工作的。
瞭解Spring Boot
瞭解Spring Boot的入口類
在建立Spring Boot專案時,會自動建立一個用於啟動的、名為「專案名+Application"的入口類,它是專案的啟動入口。在IDEA中開啟入口類之後,可以單擊類或「main"方法左側的三角形按鈕,通過彈出的選項來執行或偵錯Spring Boot應用程式。
Spring Boot的常用註解
應用程式分層開發模式一MVC
將URL對映到方法
認識響應式程式設計
面向切面程式設計
認識loC容器和Servlet容器
瞭解JPA註解和屬性
CRUD註解
許可權控制方式
RabbitMQ的6種工作模式
用Kibana檢視管理紀錄檔
實現管理許可權功能
用Redis實現分散式秒殺系統
由於筆記涉及到的知識點極多,很多知識點都忽略啦,這份【springboot實戰派】共434頁,文末有完整版的供大家參考...................
由於筆記的內容跨度廣,所以分「核心篇」「運維篇」和「Web篇」三冊分別討論SpringBoot的功能特性。「核心篇」開篇總覽Spring Boot核心特性,逐討論Spring Boot官網所羅列之六大特性,然而其中兩點並非Spring Boot專屬,故點到為止,而將討論聚焦在其五大特性,分別為自動裝配(Auto-Configuration)、 SpringApplication、 外部化設定、Spring Boot Actuator 和嵌入式Web容器。其中,前兩者是「核心篇」討論的議題,後兩者則是Spring Boot官方定義的Production-Ready特性,均偏向Spring Boot 應用運維,因此納入「運維篇」的討論範疇。至於嵌入式Web容器,將結合傳統Java EE Servlet、Spring Web MVC和Spring 5 WebFlux的有關內容放至「Web 篇」探討,具體章節安排如下。
核心篇
運維篇
Web篇
為了不影響到大家的閱讀體驗,特地把筆記拆分為3大部分以供參考
圖形化介面建立Spring Boot應用
理解Spring Boot Actuator
Spring Boot作為Spring Cloud基礎設施
改變是一個不破不立的過程。「破」不是否定過去,而是去除糟粕:「立」不是無中生有,而是與時俱進。
Spring核心註解場景分類
理解SpringApplicationRunListener
理解SpringBoot事件
由於內容太多就不一一展示了,這兩份springboot筆記【springboot實戰派】【springboot程式設計思想】分別為434頁、629頁,喜歡這篇文章的朋友,可以點贊此文關注小編後,【見下圖】即可獲取