SpringBoot開發實戰
小編 2022-09-27 17:59:40
SpringBoot是在當今Java開發行業中使用最為廣泛的開發框架,同時也是所有的Java從業者必須熟練掌握的一項核心技能,在本次課程之中將圍繞著SpringBoot這一核心開發主題為讀者展開分析,重點闡述了SpringBoot自身的運行機制,同時講解了一些常規服務的整合。
在本次的課程講解中為讀者詳細的分析了SpringBoot的運行機制,并且圍繞著SpringBoot所提供的四個核心組件(AutoConfig、Starter、Actuator、SpringBootCLI)進行了詳細的拆解,基于已經掌握的Spring/SpringMVC/MyBatis/MyBatisPlus/JPA/Shiro進行了整合處理,同時又深入的講解了SpringBoot所提供的異步開發的技術實現。
考慮到知識的完整性,在本課程中主要講解了多種技術組件,同時這些組件也將在后續的SpringCloud課程中提供良好的技術支撐,本套課程是現在市面上最全面的基于SpringBoot核心技術的講解,包含的主要特點如下:
01、市面上唯一一套基于Gradle構建工具講解的SpringBoot課程,并深入講解了與IDEA配置關聯;
02、詳細完整的講解了Lombok組件的整合以及注解應用;
03、提供了各類數據文件的處理支持,包括:PDF、Excel、圖片流、視頻流、JSON、XML等;
04、不再是單一的WEB環境,而是整合了Tomcat、Jetty、Undertow多種容器運行環境以及JVM性能優化;
05、完整的闡述了SpringBoot與傳統JavaWEB以及Spring/SpringMVC之間的技術關聯;
06、基于當前主流應用所采用的前后端分離架構進行課程設計,幫助開發者更好的掌握SpringBoot實際應用;
07、為滿足單實例的開發要求,講解了Thyemeleaf模版語法;
08、完整的講解了Actuator監控,并且結合Prometheus以及Gragana實現了服務狀態的監控以及警報處理;
09、基于Spring的容器管理機制講解了分布式定時任務組件的使用,并基于Lettuce實現了Redis整合;
10、基于SpringBoot以及JDK11實現了WebService服務端與客戶端開發;
11、完整的闡述了SpringBoot中異步任務的處理支持,并通過WebFlux組件實現了響應式編程;
12、講解了最新的物聯網協議RSocket的工作原理,并結合SpringBoot實現了RSocket的程序開發;
13、深入分析了SpringBoot的自動裝配原理,并基于自動裝配原理剖析了SpringBoot啟動流程;
14、使用SpringBootCLI基于Groovy實現了SpringBoot程序開發;
15、全面講解了Druid數據源與SpringBoot的整合,并基于配置文件與Bean兩種方式實現了Druid相關配置;
16、基于動態決策機制實現了多Druid數據源的配置,并通過Atomikos實現了JTA分布式事務;
17、整合了常用的ORM組建,例如:MyBatis、MyBatisPlus、SpringDataJPA;
18、整合了SpringSecurity、Shiro組件并結合前后端分離技術實現了分布式認證與授權管理;
19、講解了主流的JWT開發技術,并結合前后端分離講解了Token登錄操作的原理與具體實現。
20、完整的前后端分離項目實戰,基于Vue.JS + ElementUI + SpringBoot + 多組件打造全方位項目應用。

04_SpringBoot開發實戰 https://www.aliyundrive.com/s/e5cQ5MV8pwA 點擊鏈接保存,或者復制本段內容,打開「阿里云盤」APP ,無需下載極速在線查看,視頻原畫倍速播放。

0000_【前言】寫在前面的話 本書是一本綜合講解SpringBoot原生開發技術的原創圖書,也是作者若干年的開發與教學經驗的總結,在這一部分我們將為讀者全方面的介紹本書的寫作目的以及章節內容概述。
0101_【理解】傳統Java開發之痛 Java是構建企業平臺與互聯網平臺的首選編程語言,在本課程中為讀者分析了傳統的JavaEE所帶來的結構缺陷與性能問題,同時引出了開發框架設計的重要意義。
0102_【理解】Spring之傷 Spring作為一款優秀的開發框架從2002年起就一直陪伴Java技術的成長,同時也已經成為了一種事實上的Java開發標準,但是為什么要在Spring框架之上繼續研發SpringBoot呢?在本課程中為讀者講解了Spring的起源、發展以及存在的問題。
0103_【理解】走進SpringBoot 為了降低開發者的代碼編寫,Pivotal公司基于Spring開發了SpringBoot開發框架,可以提高項目的啟動與開發效率,本課程為讀者分析了SpringBoot的特點、與Spring之間的關聯以及微服務的基本概念。
0201_【掌握】構建SpringBoot項目 SpringBoot項目的開發需要大量的第三方組件庫,開發者可以直接基于Gradle構建工具進行開發實現,本課程通過IDEA實現了Gralde項目的構建以及依賴庫配置。
0202_【掌握】第一個SpringBoot應用 SpringBoot可以以Java程序的方式運行,而后會結合內置的Tomcat容器自動實現應用程序的部署,本課程通過具體的代碼講解了第一個SpringBoot的程序開發。
0203_【理解】SpringBoot注解分析 SpringBoot基于零配置實現了項目的配置管理,而實現零配置的關鍵就是注解與代碼存儲結構,本課程為讀者分析了SpringBoot中的相關注解的作用,并且通過了具體的程序結構拆分實現了項目代碼的標準化管理。
0204_【掌握】dependency-management插件 構建工具中的依賴版本是項目維護的重點,在本課程中為讀者講解了如何基于Gradle插件實現SpringBoot依賴庫定義,以及Spring初始化工具的使用。
0205_【掌握】SpringBootPlugin Gradle對SpringBoot項目提供著良好的環境支持,為了便于程序開發提供了專屬的SpringBoot插件,本課程講解了此插件的作用以及引入配置。
0206_【掌握】多模塊拆分 一個良好的項目結構設計,需要依據功能實現子模塊的拆分操作,本課程中將基于Gradle工具的特性實現父模塊的標準化結構定義以及子模塊配置。
0301_【理解】自定義啟動Banner SpringBoot極大的滿足了開發者的開發要求,可以通過配置文件實現自定義的Banner,或者通過程序類在每次項目啟動時設置不同的Banner,本課程通過具體的實例講解了Banner文本的生成以及動態Banner的實現。
0302_【掌握】導入Spring配置文件 SpringBoot提供了更加便捷的項目開發模式,這樣就需要對已有的項目進行有效的支持,所以可以基于XML配置文件的方式實現配置,在本課程中通過XML文件的方式實現了Bean定義,同時講解了“@ImportResource”注解的作用。
0303_【掌握】項目熱部署 項目的功能開發需要不斷的進行代碼的更新,而為了提高代碼的開發效率則可以采用熱部署的形式實現動態更新,本課程為讀者講解了SpringBoot的熱部署處理以及相關的IDEA工具環境配置。
0304_【掌握】整合JUnit5用例測試 為了保證項目功能的正確性,往往需要對代碼的執行結果進行測試,實際項目中JUnit是比較常見的用例測試工具,本課程通過具體的實例為讀者講解了如何基于JUnit5實現SpringBoot程序功能的測試。
0305_【掌握】Lombok簡介與配置 Lombok是在項目開發中非常著名的一款開發插件,可以幫助用戶自動的生成大量的程序代碼,減少用戶編碼的重復操作,本課程為讀者介紹了Lombok插件的作用,并且在IDEA中實現了Lombok使用環境配置。
0306_【掌握】生成類操作結構 簡單Java類是在程序開發中最為常用的一種處理結構,在引入了Lombok插件后,開發者可以極大的簡化簡單Java類的結構定義,本課程為讀者分析了Lombok提供的類結構生成注解的使用,并利用反編譯工具實現了生成代碼的比對。
0307_【理解】Accessor 標準中對象的屬性設置需要通過setter方法來完成,但是在Java中允許開發者根據自己的需要定義不同的屬性操作方法,所以在Lombok插件中提供了屬性訪問器的注解,本課程通過具體的代碼分析了屬性訪問器中的三種操作模式。
0308_【理解】建造者模式 建造者模式(又稱構建者模式)可以將一個復雜對象的構建與表示進行分離,在Lombok中可以直接進行建造者模式的生成,本課程為讀者分析了建造者模式的意義以及Lombok建造者模式生成操作的實現。
0309_【理解】異常處理 在異常處理中需要到處使用“try…catch”的結構進行捕獲,而為了簡化異常處理操作,Lombok也提供了異常代碼自動生成的注解,本課程為讀者分析異常的處理操作的問題以及自動化異常處理的基本形式。
0310_【理解】IO流自動關閉 在Java中所有的資源操作完成后都需要手工調用close()方法進行處理,而Lombok提供了資源自動釋放的注解,本課程將通過實例為讀者講解該注解的使用。
0311_【理解】同步方法 多線程進行同一資源調用時需要進行同步處理,Lombok提供了自動的同步化代碼生成,本課程通過具體的實例講解了同步方法的生成定義。
0401_【掌握】對象轉換處理 SpringBoot中的Action方法可以直接實現參數與對象的接收,也可以直接以Rest風格實現對象數據的返回,本課程通過具體的代碼實例講解了此操作的實現,同時利用Gradle項目結構管理機制實現了代碼的拆分與重用設計。
0402_【掌握】整合FastJSON組件 FastJSON是阿里推出的國內使用較為廣泛的高性能JSON處理工具,在本課程中將通過具體的操作演示,將FastJSON整合到SpringBoot之中,并用其生成JSON數據。
0403_【理解】返回XML數據 XML是一種傳統的數據交互格式,在SpringBoot程序設計中也可以直接基于Jackson依賴庫實現XML數據響應,本課程通過具體的代碼實例分析了XML的作用,同時基于新的依賴組件實現了對象轉換為XML數據轉換處理。
0404_【理解】返回PDF數據 為了便于文件的存儲保存,在項目中往往會將文本信息以PDF結構的形式返回,在本課程中通過實例講解了如何在SpringBoot項目中通過itextpdf組件生成PDF文件。
0405_【理解】返回Excel數據 為了便于項目中業務人員的數據統計需要,可以使用Excel實現數據的導出,本課程在SpringBoot項目中引入了EasyPOI組件實現Excel文件生成與下載。
0406_【理解】返回圖像流 服務器端程序在開發中可以通過MIME響應的設置實現圖像數據的返回,在SpringBoot中對這一常用操作進行了簡化處理,本課程通過具體的實例為讀者講解了圖像響應操作的實現。
0407_【理解】返回視頻流 隨著現代項目的發展要求,頁面中顯示視頻已經是常規操作,而SpringBoot中內置了非常方便的視頻資源請求處理操作,本課程通過實例為讀者講解了視頻資源二進制傳輸的控制實現。
0408_【理解】文件下載 一個WEB服務器中會存在有大量的豐富資源,開發者為了資源的安全性,往往需要通過程序實現下載控制,本課程為讀者講解了服務端文件下載操作的實現。
0409_【掌握】屬性定義與注入 項目中經常會使用資源文件進行配置管理,在SpringBoot中開發者可以使用默認的yaml文件實現配置,本課程為讀者分析了YAML文件的基本格式,并通過實例講解了資源自動注入的操作實現。
0410_【掌握】@ConfigurationProperties 為了方便的支持YAML注入的解析處理,在SpringBoot中提供了新的注解,本課程為讀者講解“@ConfigurationProperties”注解的作用并實現了List與Map集合注入。
0411_【掌握】注入對象數據 Java項目中的一切數據皆為對象,開發者可以利用SpringBoot提供的YAML文件實現對象屬性的配置,本課程講解了資源屬性與類關聯結構的定義。
0412_【掌握】自定義注入配置文件 在資源管理中為了避免過多資源配置導致application.yml文件的冗余,所以提供有資源文件的引入支持,在本課程中將實現資源的拆分以及注入管理。
0501_【掌握】項目打包 SpringBoot提供了微服務構建的核心基礎,本次課程將基于Gradle任務管理實現了SpringBoot項目可執行jar文件的配置與生成操作。
0502_【掌握】調整JVM運行參數 JVM是SpringBoot程序運行的核心,然而在默認情況下JVM并不能夠很好的發揮服務主機的性能,本課程基于SpringBoot程序部署講解了JVM核心參數配置操作。
0503_【掌握】配置WEB環境 在WEB開發中除了應用程序之外,實際上還會包含有WEB容器的配置,本課程為讀者講解了如何修改Tomcat的監聽端口以及相關配置屬性的定義。
0504_【掌握】profile環境配置 profile是項目開發環境的統一管理文件,SpringBoot考慮到多開發環境的應用,提供了良好的profile處理支持,本課程通過具體的代碼為讀者分析了profile定義的兩種形式,以及動態切換profile的操作。
0505_【理解】打包war文件 在SpringBoot運行中除了可以使用jar文件結構之外,也可以基于傳統的war文件部署,本課程講解了war文件的打包、程序類配置以及Tomcat應用部署操作。
0506_【理解】整合Jetty容器 Jetty已經是谷歌應用引擎(GAE)中被廣泛使用的WEB容器,也是世界上較為流行的一種WEB容器,本課程為讀者分析了Tomcat與Jetty運行架構,并通過具體的講解實現了SpringBoot與Jetty的整合。
0507_【理解】整合Undertow容器 Undertow是新一代的WEB容器,本課程為讀者講解了如何將SpringBoot以Undertow容器的配置實現。
0508_【掌握】獲取WEB內置對象 JavaWEB的核心機制是圍繞內置對象操作展開的,在本課程中為讀者講解了SpringBoot中的內置對象獲取機制。
0509_【掌握】讀取資源文件 項目中的資源文件可以實現公共文字項的配置,也可以輕松的實現代碼的國際化運行機制,本課程為讀者講解了資源文件的配置以及國際化數據讀取操作。
0510_【掌握】文件上傳 文件上傳是HTTP中的常見應用,本課程通過實例代碼講解了FileUpload組件在SpringBoot中的應用,并利用curl工具模擬文件上傳操作的實現。
0511_【掌握】整合WEB過濾器 過濾器是傳統WEB組件為了保證請求安全而設計的,在Spring中可以基于Bean配置的形式實現過濾器的開發,本課程講解了WEB過濾器定義的兩種形式以及多個過濾器執行順序的配置。
0512_【掌握】整合WEB監聽器 監聽是WEB開發中提供的事件驅動型的程序組件,在SpringBoot中也可以通過監聽器實現各種狀態的處理,本課程講解了在SpringBoot下的WEB監聽器開發。
0513_【掌握】攔截器 攔截器是SpringMVC所提供的擴展攔截組件,可以直接實現Action請求與響應的攔截處理,本課程基于SpringBoot實現了一個攔截器的定義與配置操作。
0514_【掌握】AOP攔截器 AOP是Spring的核心組成技術,也是對代理設計模式的有效封裝,本課程講解了如何在SpringBoot中基于AOP切面形式實現程序調用的攔截處理。
0515_【理解】整合Email郵件服務 WEB項目中經常需要與郵件系統進行整合,SpringBoot也提供有方便的郵件整合機制,本課程將通過已有的郵件系統實現服務開通,并利用程序實現郵件發送操作
0516_【理解】https安全訪問 https安全訪問是當今的主流應用協議,本課程將利用Java中提供的keytool工具模擬了證書的生成以及SpringBoot中對https啟用的配置。
0517_【理解】全局錯誤頁 WEB開發中考慮到可能出現的各種錯誤信息,最終都會定義統一的錯誤顯示頁,本課程通過實例講解了如何在SpringBoot項目中定義錯誤頁以及HTTP狀態碼的匹配。
0518_【掌握】全局異常處理 良好的程序開發需要有全面的異常處理操作,在SpringBoot中提供了全局異常的處理操作響應支持,本課程通過代碼講解了項目中統一異常的配置及數據響應。
0519_【掌握】全局數據綁定 在Action進行請求處理時經常需要使用到一些公共的數據信息,而在SpringBoot中可以直接通過“@ControllerAdvice”處理完成,本課程通過實例講解了全局數據綁定的配置以及數據的兩種注入處理模式。
0520_【掌握】全局數據預處理 Action類中的參數與對象轉換是依靠名稱的匹配機制完成的,但是開發的多樣性中是有可能出現同名屬性問題的,本課程為讀者分析了同名屬性對于參數接收的影響,并利用了全局預處理的形式基于標記前綴的方式解決了該問題。
0521_【理解】數據驗證簡介 數據驗證是保證請求正確執行的關鍵步驟,在SpringBoot中可以直接引用JSR303驗證規范進行驗證處理,本課程為讀者分析了Rest架構中請求驗證的意義。
0522_【掌握】JSR303數據驗證規范 本課程為讀者講解了JSR驗證規范的具體定義以及Hibernate驗證組件提供的擴展驗證操作,并通過具體的實例分析了類驗證規范以及普通參數驗證的實現。
0523_【理解】設置錯誤信息 為了維護方便項目中往往會進行錯誤提示信息的統一管理,這樣就可以基于資源文件實現錯誤信息的定義,本課程講解了如何在注解中聲明錯誤信息以及如何利用資源文件實現錯誤信息的加載處理。
0524_【理解】自定義驗證器 隨著項目的不同對于數據驗證的處理要求也是不同的,考慮到程序開發擴展性的需要,JSR303也支持有自定義驗證器的設計需求,本課程通過具體的操作實例為讀者講解了自定義驗證注解與驗證處理器的使用。
0601_【理解】Thymeleaf簡介 單主機的項目需要實現動態數據的展示,在SpringBoot中默認集成了Thymeleaf模版支持,本課程為讀者講解了傳統顯示層開發的問題,以及Thymeleaf模版的特點。
0602_【理解】Thymeleaf編程起步 SpringBoot框架中針對于Thymeleaf模版提供了良好的支持,在本課程中為讀者講解了Thymeleaf模版文件的保存結構并且通過一個具體的代碼實現了控制器與模版之間跳轉以及屬性傳遞的功能實現。
0603_【理解】Thymeleaf環境配置 SpringBoot對Thymeleaf有著良好的支持,同時也提供有很多的配置參數,在本課程中為讀者介紹了相關配置參數的定義。
0604_【理解】整合靜態資源 WEB開發中為了便于顯示經常需要引入大量的靜態資源,在Thymeleaf中也對靜態資源的引入進行了結構規定,本課程為讀者講解了靜態資源的存儲、靜態頁面文件的定義以及相關資源的引入。
0605_【理解】路徑訪問支持 程序開發中需要通過動態模版頁面進行數據顯示,同時也需要加載指定的靜態資源,為此Thymeleaf提供了方便的資源定位符,本課程將通過一個基本的請求跳轉并結合資源定位符實現頁面顯示操作。
0606_【理解】讀取資源文件 Thymeleaf中可以直接實現資源文件的內容加載,同時結合合理的Locale設置即可實現國際化的數據顯示要求,本課程通過具體的實例講解了Thymeleaf國際化操作實現。
0607_【理解】內置對象支持 內置對象是構成JavaWEB開發的核心單元,在模版中可以直接在頁面實現指定內置對象的獲取,本課程為讀者介紹了Thymeleaf中的環境對象以及基本使用
0608_【理解】對象輸出 MVC設計中是以對象實現數據傳輸處理的,在Thyemleaf中可以直接利用特定的語法實現對象屬性的獲取,本課程通過實例演示了一個對象傳遞與屬性輸出的操作。
0609_【理解】頁面邏輯處理 動態頁面是根據傳遞的屬性內容實現渲染的,在Thymeleaf中可以直接在頁面中結合關系運算以及邏輯運算進行分支判斷操作,本課程通過具體的實例講解了th:if、th:unless、th:switch等語句的使用。
0610_【理解】數據迭代處理 為了便于數據顯示控制層常常將內容保存在集合之中,本課程講解了Thymeleaf模版語法中的List與Map集合接收與迭代輸出操作。
0611_【理解】頁面包含指令 包含是頁面程序可重用性操作的重要技術手段,在進行頁面展示時可以實現功能程序的拆分,本課程通過實例為讀者分析了Thyemeleaf中提供的兩種包含語法支持。
0612_【理解】頁面數據處理 控制層傳遞的數據內容需要在前臺進行處理,為了便于頁面的顯示,在Thyemleaf中可以直接通過數據處理對象實現字符串、List、Set、Map的相關方法調用,本課程通過具體的代碼為讀者演示了這些數據處理操作的實現。
0701_【掌握】Actuator監控簡介 項目監控是保證服務穩定的重要依據,在SpringBoot中提供了Actuator監控管理,本課程為讀者講解了微服務監控的意義,以及Actuator組件的配置及使用。
0702_【掌握】Actuator接口訪問 Actuator由一系列的服務接口所組成,本課程為讀者宏觀的介紹了常見的監控端口功能,同時演示了mappings、beans監控信息的獲取。
0703_【理解】heapdump信息 為了便于代碼性能的調整,,開發者可以通過Actuator工具中提供的heapdump堆內存快照信息進行分析,本課程講解了heapdump文件的下載以及內存信息查看。
0704_【理解】info服務信息 項目中的微服務需要進行明確的功能標準,所以在Actuator中就提供有完善的info服務監控,本課程通過實例講解了info配置的兩種形式以及信息內容的獲取。
0705_【理解】health服務信息 微服務的能否持續的提供穩定的服務是保持項目持續運行的關鍵所在,在Actuator中提供了健康狀態監控支持,本課程為讀者講解了“/health”返回信息控制以及自定義健康狀態檢測類的使用。
0706_【理解】遠程關閉 Actuator除了提供有狀態監控功能外,也可以實現遠程服務關閉的操作,本課程通過實例分析講解了遠程關閉的啟用以及命令發送操作。
0707_【理解】自定義Endpoint 考慮到項目監控擴展的支持,可以采用自定義EndPoint處理形式完成,本課程通過實例講解自定義EndPoint工具類定義,并實現了數據參數的傳遞。
0708_【掌握】Lombok日志注解 日志是項目中的常規功能,在SpringBoot中已經自動的實現了日志組件的依賴配置,本課程講解了傳統日志的處理操作,并結合Lombok日志注解實現了日志輸出。
0709_【掌握】SpringBoot日志配置 為了便于日志管理,往往都需要設置不同的日志級別,本課程為讀者分析了默認的日志級別,同時通過具體的實例講解了如何基于application.yml實現日志級別的配置。
0710_【掌握】整合Logback日志配置文件 SpringBoot中的日志除了可以通過yaml配置之外,也可以進行單獨的日志配置的引入,本課程為讀者定義了Logback日志配置文件,并實現了日志的歸類管理。
0711_【掌握】動態修改日志級別 SpringBoot結合Actuator監控管理可以實現日志級別的動態控制,本課程通過具體的實例講解了動態日志實現所需要的相關配置以及修改實現。
0712_【掌握】MDC全鏈路跟蹤 良好的日志記錄需要詳細的保存用戶線程的每一步操作信息,所以在Slf4j中提供了MDC全鏈路跟蹤日志,本課程為讀者分析了傳統日志記錄中的問題,同時通過具體的實例講解了MDC全鏈路跟蹤的程序實現。
0713_【理解】Actuator可視化監控簡介 合理的微服務監控是保證項目正確運行的關鍵,這樣就需要將Actuator提供的監控數據進行有效的整理,在本課程中為讀者講解了監控數據可視化的意義,并介紹了在可視化監控操作中常見的服務組件作用,同時為了便于讀者清楚的理解每項服務的作用,利用虛擬機實現了一個監控集群的服務主機配置。
0714_【理解】NodeExporter NodeExport是一個由Prometheus所提供的服務插件,其主要的目的是可以獲取當前應用主機的監控信息,本課程為讀者講解了NodeExporter組件的獲取以及環境配置。
0715_【理解】獲取Prometheus監控數據 基于Actuator的處理機制,可以在項目中與Prometheus監控工具有效整合,本課程通過實例講解了如何實現“/prometheus”監控終端的啟用。
0716_【理解】配置Prometheus服務 Prometheus是一個開源工具可以方便的被所有開發者所使用,本課程為讀者講解了Prometheus工具的下載,并在Linux系統上進行了實現了工具的安裝與配置。
0717_【理解】Gragana可視化 為了實現更加豐富的可視化效果,在微服務監控中往往會通過Grafana組件進行處理,本課程為讀者講解了Grafana組件的安裝以及與Prometheus整合操作。
0718_【理解】監控報警配置 為了保證生產環境下的服務處于正確的運行狀態,就必須對可能存在的問題進行有效的預警機制,Prometheus提供了AlterManager警報管理,本課程將利用QQ郵箱實現警報郵件的發送,并且根據監控參數定義了報警規則。
0719_【理解】警告觸發測試 Prometheus中的報警數據是實時獲取的,為了可以幫助讀者觀察到監控狀態并可以接收到警告信息,在本課程中會通過stress工具實現測試操作。
0801_【理解】Spring定時任務 SpringBoot可以直接通過SpringTask實現定時任務的定義,在本課程中將通過間隔任務調度以及CRON任務調度兩種模式實現定時任務,并闡述了定時任務與線程池之間的關聯。
0802_【掌握】ShedLock分布式定時任務 為了便于集群中的定時任務管理,在SpringBoot中可以利用ShedLock實現分布式定時任務調度,在本課程中為讀者分析了集群節點定時任務的重復執行問題,并且結合Redis數據庫實現了分布式定時任務鎖的管理。
0803_【掌握】ShedLock動態任務管理 定時任務的實現關鍵在于觸發時間的配置,而使用ShedLock組件可以實現CRON表達式的動態配置,在本課程中為讀者講解了如何實現任務觸發的動態管理。
0804_【理解】自定義事件概述 項目開發中會因為各種業務處理的強大邏輯關系造成業務功能代碼的耦合家居,所以為了實現解耦和的目的就可以基于事件方式進行配置,在本課程中總結了Java中的事件管理機制實現問題,并分析了Spring中的事件實現機制
0805_【掌握】自定義事件處理 Spring對已有的事件機制進行了擴充,在本課程中為讀者分析了Spring中的事件實現結構,并且利用給定的程序類實現了事件觸發與處理操作。
0806_【掌握】@EventListener注解 為了進一步優化自定義事件的處理操作形式,在Spring中提供了@EventListener注解,本課程為讀者分析了傳統Spring事件處理機制的實現問題,同時通過具體的代碼實例講解了如何通過事件配置類實現相關事件處理。
0807_【理解】WebService簡介 WebService是一種傳統的服務整合架構,在本課程中為讀者分析了WebService技術的主要作用,并介紹了與WebService的相關技術概念。
0808_【理解】搭建WebService服務端 Java中為了便于WebService開發提供了專屬的jws程序包,同時可以在SpringBoot中結合CXF開發框架實現服務的發布,本課程通過具體的程序實例,講解了WEB服務的開發以及發布處理。
0809_【理解】開發WebService客戶端 WebService客戶端需要依據SOAP協議模式進行調用,而通過CXF可以減少客戶端使用的代碼繁瑣度,本課程為讀者講解了客戶端的靜態與動態調用模式。
0810_【掌握】WebSocket簡介 WebSocket是HTML5所提供的重要通訊組件,本課程為讀者講解了WebSocket與Ajax操作的區別,以及WebSocket的通訊機制。
0811_【理解】開發WebSocket服務端 SpringBoot提供了方便的WebSocket開發支持,在本課程中為讀者通過實例講解了WebSocket程序開發實現。
0812_【理解】開發WebSocket客戶端 WebSocket客戶端不受到服務器的限制,只要提供有正確的WebSocket的連接地址即可訪問,本課程通過原生的JavaScript實現了WebSocket通訊操作。
0901_【掌握】SpringBoot異步處理簡介 多線程技術是Java的核心話題,也是提升服務器處理性能的重要技術手段,本課程為讀者分析了SpringBoot中異步線程的作用,并且介紹了與之相關的工具類的作用。
0902_【掌握】Callable實現異步處理 SpringBoot基于Java的線程池管理,提供了異步任務線程池的概念,本課程為讀者分析了工作線程池以及異步任務線程池的區別,同時利用了自定義配置類的方式實現了異步線程池的定義。
0903_【掌握】WebAsyncTask 為了方便異步線程的管理,開發者可以通過Spring所提供的WebAsyncTask任務類進行處理,本課程為讀者講解了局部異步線程配置的作用以及具體實現。
0904_【理解】DeferredResult Java中的線程執行存在有Runnable與Callable兩種機制,本課程主要為讀者分析了Runnable實現的異步線程中所存在的問題,并使用了DeferredResult工具類保證了Runnable線程的正常執行。
0905_【掌握】SpringBoot異步任務 異步任務是一種在后臺運行的線程結構,可以在不影響用戶響應的情況下執行某些后臺處理,本課程為讀者分析了異步請求以及異步任務的區別,并且通過具體的程序代碼實現了異步任務的開發與使用。
0906_【掌握】響應式編程簡介 JDK1.9開始支持了Reactive Streams響應式編程,隨后Spring也提供了Reactor編程模型,在SpringBoot中又推出了WebFlux,在本課程中為讀者分析了響應式編程的發展歷史,同時通過對比給出了SpringMVC與WebFlux實現區別。
0907_【理解】WebFlux終端響應 WebFlux基于Reactor技術實現,在開發中可以直接以啟動一個運行終端進行請求處理,本課程通過具體的開發步驟,講解了SpringBoot項目引入webflux依賴以及Reactor程序的開發與運行。
0908_【理解】SpringBoot整合WebFlux SpringBoot為了便于異步處理,提供了更加方便的WebFlux整合支持,本課程通過具體的程序代碼講解Action與WebFlux的整合操作。
0909_【理解】Flux返回集合數據 Mono與Flux是Reactor開發框架中所提供的兩種返回處理操作類,本課程為讀者分析了這兩個類的區別,并且通過實例講解了如何基于Flux結構返回List與Map集合。
0910_【理解】WebSocket處理支持 內部提供了WebSocket異步處理支持,本課程結合WebSocket客戶端實現了Reactor中的WebSocket程序數據交互。
0911_【理解】RSocket簡介 RSocket是一種新型的通信協議,在本課程中為讀者分析了傳統的HTTP協議存在的問題,并且講解了RSocket協議的主要特點。
0912_【理解】RSocket基礎開發 RSocket提供了多種編程技術的實現方案,本課程中將通過一個Java程序代碼,完整的分析了RSocket程序的基本開發,同時分析了四種數據處理操作方法的使用。
0913_【理解】搭建RSocket服務端 RSocket需要進行各種不同的數據處理模式,同時基于SpringBoot可以方便的實現RSocket服務開發,本課程結合常用的業務處理操作,為讀者通過實例分析了RSocket服務的搭建。
0914_【理解】搭建RSocket客戶端 RSocket客戶端基于CBOR實現服務端數據交互,本課程講解了客戶端的編碼器與解碼器配置,同時利用JUnit實現了RSocket遠程服務調用。
0915_【理解】RSocket文件上傳 RSocket的二進制傳輸支持對于文件的上傳操作也極為方便,本課程為讀者分析了RSocket文件上傳的基本流程,并且通過程序實現了文件的上傳與保存處理。
0916_【理解】基于RSocket開發WebSocket RSocket中支持有WebSocket通信實現,開發者可以直接通過修改SpringBoot配置文件的transport屬性實現WebSocket通訊,本課程通過具體的應用實例為讀者講解了WebSocket服務端開發,并通過Vue.JS實現了RSocket-WebSocket-Client客戶端調用。
1001_【掌握】自動裝配簡介 SpringBoot本著“約定優與配置”的原則,提供了自動裝配處理機制,在本課程中為讀者分析了自動裝配的作用,并基于Redis自動裝配進行了說明。
1002_【理解】@EnableConfigurationProperties Spring中的Bean屬性可以與資源文件進行配置關聯,在本課程中實現自定義裝配類的定義并利用“@ConfigurationProperties”注解實現了屬性內容的注入操作。
1003_【理解】@Import注解 @EnableConfigurationProperties注解的實現依賴于@Import注解,本課程為讀者分析了@Import注解的三種使用形式,并且通過具體的程序代碼進行操作演示。
1004_【理解】application.yml配置提示 為了便于SpringBoot程序開發,在SpringBoot中會針對于配置Bean提供有配置提示的功能,本課程為讀者講解了如何在已有的程序中實現自動提示的處理操作。
1005_【理解】自定義Starter組件 一個符合于SpringBoot裝配的模塊一定要提供有大量的自動裝配處理,本課程基于已經實現的自動配置模塊實現打包處理,并在其他項目中實現自動配置管理。
1006_【理解】SpringBoot啟動核心 SpringBoot設計極大的簡化了開發者的項目配置難度,其利用大量的“零配置”形式可以方便的實現Bean注冊管理,本課程從宏觀的角度為讀者介紹了核心啟動類以及啟動注解的作用。
1007_【理解】SpringApplication構造方法 SpringApplication是整個SpringBoot結構中的核心程序類,本課程通過源代碼的組成分析了SpringApplication的基本執行流程,同時分析了SpringApplication類中核心構造方法源代碼的功能。
1008_【理解】SpringApplication.run()方法 獲取了SpringApplication對象實例后,實際上就可以實現相關的類加載器配置以及容器初始化配置支持,這樣就可以通過run()方法實現容器啟動,本課程為讀者分析了run()方法的源代碼組成結構。
1009_【理解】啟動內置WEB容器 SpringBoot為了便于啟動容器的統一管理,提供了ConfigurableApplicationContext接口,本課程通過該接口實例的創建分析了SpringBoot中WEB容器的啟動配置。
1010_【理解】AbstractApplicationContext.refresh()方法 Spring容器中需要維護大量的程序Bean,雖然SpringBoot不再需要進行手工的配置,但是其內部依然會有大量的Bean、事件與資源管理配置,本課程為讀者展示了容器刷新源代碼的定義,并分析了其操作的組成。
1011_【理解】SpringBootCLI配置 SpringBootCLI是一個簡化程序運行的處理工具,本課程為讀者介紹了SpringBootCLI工具的作用,并演示了該工具的下載與安裝操作。
1012_【理解】使用Groovy開發SpringBoot應用 Groovy是一種簡化的Java腳本編程,本課程通過Groovy實現了SpringBoot中的控制器定義,并結合SpringBootCLI實現了項目的運行。
1013_【理解】Groovy開發SpringBoot項目 SpringBootCLI內部提供有大量的項目運行與構建工具,本課程為讀者介紹了常用的工具命令,并實現了Maven以及Gradle項目的快速構建。
1101_【掌握】Druid基本配置 Druid是一款高性能的數據庫連接池組件,本課程為讀者介紹了Druid的基本作用,同時基于SpringBoot提供的整合方案實現了Druid數據源的相關配置。
1102_【掌握】基于Bean配置Druid 使用druid-spring-boot-starter模塊雖然可以很方便的實現Druid數據源的配置,但是考慮到實際開發中的靈活性,還是建議開發者手工配置Druid應用環境,本課程采用了原始的druid依賴庫并基于Bean配置的方式實現了Druid連接池的配置。
1103_【掌握】Druid監控界面 Druid提供了應用的狀態監控管理機制,在本課程中通過實例為讀者講解了如何開啟WEB監控以及相關監控環境的配置。
1104_【掌握】WEB訪問監控 Druid自帶了WEB環境監控,可以對用戶的每一次請求路徑以及處理性能進行統計記錄,本課程講解了如何在項目中實現WEB信息、Session以及URI監控的開啟。
1105_【掌握】SQL監控 為了完成項目所需要的業務往往需要執行大量的SQL操作,Druid提供了SQL執行次數的統計以及性能分析,本課程講解了如何在項目中開啟SQL監控操作。
1106_【掌握】SQL防火墻 SQL防火墻可以有效的保證程序出現非法SQL時進行攔截,本課程為讀者介紹了Druid提供的SQL防火墻規則,并且通過實例實現了SQL防火墻的配置與操作攔截。
1107_【掌握】Spring監控 Druid提供了Spring監控支持,可以直接依賴AOP定義監控切面,并根據切面獲取相應的監控數據,本課程實現了Druid中的Spring監控配置。
1108_【掌握】Druid日志記錄 Druid支持有日志的存儲記錄支持,開發者可以利用日志進行程序問題的分析,本課程基于Logback日志組件,實現了一個慢SQL日志的記錄操作。
1109_【掌握】Spring整合MyBatis MyBatis是項目開發中最為常用的ORM組件,在SpringBoot中也提供了非常方便的MyBatis整合開發,本課程為讀者講解了SpringBoot整合MyBatis的操作實現。
1110_【掌握】Spring整合MyBatisPlus MyBatisPlus提供了與SpringDataJPA類似的結構,可以大量簡化MyBatis重復開發,本課程基于SpringBoot開發框架引入了MybatisPlus,并實現了基本CRUD操作。
1111_【掌握】基于Bean模式整合MyBatisPlus組件 開發者在實際開發中會存在有MyBatisPlus手工配置的需要,所以在本次課程中將廢棄mybatis-plus-boot-starter依賴,并通過Bean的方式實現組件的手工配置。
1112_【掌握】AOP事務處理 Spring提供了良好的AOP事務支持,由于SpringBoot倡導零配置,所以可以基于Bean方式配置處理,本課程實現了SpringBoot中的事務配置應用。
1113_【掌握】多數據源操作簡介 利用Bean方式可以在項目運行容器內定義若干個DataSource數據源,這樣就要在數據庫操作時動態的實現數據源的切換操作,本課程為讀者分析了多數據源配置的意義,以及在Spring中實現動態數據源切換的設計原理。
1114_【掌握】配置多個Druid數據源 SpringBoot所提供的Druid自動裝配處理機制中提供了多數據源的配置支持,本課程將基于application.yml以及DruidDataSourceBuilder類實現項目中多個數據源的配置。
1115_【掌握】動態數據源決策 項目中的多個DataSource需要根據不同的請求切面實現切換處理,在本課程中將基于AbstractRoutingDataSource并結合AOP實現了動態數據源的切換操作。
1116_【掌握】MyBatisPlus整合多數據源 有了數據源的動態切換后,就可以基于此機制實現MyBatis與動態數據源的整合處理,在本課程中基于DAO層實現動態數據源的切面管理,并實現數據查詢操作。
1117_【掌握】JTA分布式事務簡介 程序中采用多數據源管理后就需要進行分布式的事務控制,本課程為讀者講解了分布式事務的主要作用,同時分析了Atomikos實現原理
1118_【掌握】AtomikosDataSourceBean Druid數據源提供了XA協議支持,在本課程中將修改已有的數據源配置,并基于AtomikosDataSourceBean類實現了數據源配置。
1119_【掌握】多數據源事務管理 Spring可以基于AOP實現事務操作的切面控制,而在多數據源的程序管理中,需要通過不同的數據源實現事務管理,本課程基于MyBatis事務標準實現了一個自定義事務管理器,并基于事務管理工廠實現了事務對象獲取。
1120_【掌握】MyBatis整合分布式事務 分布式事務需要整合在MyBatis配置類中,在本課程中實現了事務組件的整合,隨后又基于數據的批量更新操作演示了分布式事務的具體實現效果。
1201_【掌握】SpringSecurity快速整合 Spring為了便于認證與授權的統一管理提供了SpringSecurity開發框架,同時在SpringBoot中也提供了該框架的簡化整合,本課程通過具體的開發實例為讀者講解了如何在SpringBoot項目中引入SpringSecurity支持,并且實現了基礎開發。
1202_【掌握】基于Bean配置SpringSecurity 通過application.yml配置的SpringSecurity僅僅可以提供基礎的認證與授權管理,而為了便于SpringSecurity配置管理,在項目中往往都基于配置Bean的形式完成,本課程通過實例在配置類中定義了用戶信息以及相應的編碼器定義。
1203_【掌握】HttpSecurity SpringSecurity提供了強大的定制化支持,開發者可以通過配置類實現訪問路徑的授權檢測,在本次課程中將通過HttpSecurity類實現資源路徑的訪問配置。
1204_【掌握】返回Rest認證信息 現代項目采用了前后端分離設計架構,這樣就需要對SpringSecurity的處理操作以Rest方式進行響應,本課程利用了HttpSecurity實例并結合處理接口實現了認證與授權有關的Rest數據響應處理。
1205_【掌握】UserDetailsService 為了便于用戶認證與授權業務的處理,在SpringSecurity中可以基于UserDetailsService進行相關業務處理,本課程講解了UserDetailsService實現結構,并且通過具體的操作實例講解實現了UserDetailsService接口的應用整合。
1206_【掌握】基于數據庫實現認證授權 良好的項目結構中所有的認證數據需要通過數據庫實現統一管理,在本課程中將基于SpringDataJPA開發框架與UserDetailsService接口實現基于數據庫的認證授權管理。
1207_【掌握】OAuth2基本概念 OAuth2是當前實現單點登錄的重要技術手段,利用OAuth2可以有效的實現異構系統的統一認證服務處理,在本課程中為讀者講解了OAuth2的概念以及使用流程。
1208_【掌握】搭建 OAuth2基礎服務 OAuth2是一種協議標準,可以通過手工或已有安全框架來實現,在SpringSecurity中提供了OAuth2的整合支持,在本課程中將通過基礎依賴實現OAuth2的基本操作。
1209_【掌握】ClientDetailsService 基于SpringSecurity實現的OAuth2,可以結合SpringSecurity已有的結構特點進行代碼管理,在本課程中會為讀者講解第三方客戶端接入數據管理操作結構。
1210_【掌握】使用數據庫存儲Client信息 實際應用中會存在有大量的第三方客戶端整合服務,那么此時就需要通過數據庫來實現Client數據管理,本課程講解了client數據表的創建,并且基于SpringDataJPA實現了Client數據層的處理。
1211_【掌握】使用Redis保存Token令牌 OAuth2進行資源訪問的重要途徑就是Token處理,在本課程中通過客戶端ID和密鑰并結合授權碼實現了Token的生成,同時考慮到了OAuth2集群應用環境,實現了基于Redis數據庫的Token數據存儲。
1212_【掌握】OAuth2資源服務 OAuth2認證處理流程中服務器需要提供有相關的用戶資源,而資源的訪問是需要存在有合法的Token信息,本課程實現了用戶基本信息資源返回處理。
1213_【掌握】OAuth2客戶端訪問 SpringSecurity除了支持有OAuth2服務搭建之外,也可以直接實現客戶端的創建,在本課程中將通過具體的操作實例講解具體的OAuth2服務的調用處理。
1214_【理解】Vue.JS整合OAuth2認證 現代的大型項目開發都會對程序實現進行有效的前后端分離,在本課程中將通過Vue.JS并結合WebPack實現OAuth2接入實現,并通過Axios實現了資源數據的獲取處理。
1215_【掌握】JWT簡介 JWT是一種簡化的單點登錄解決方案,在本課程中為讀者分析了OAuth2單點登錄應用方案的形式以及缺陷,并且詳細闡述了JWT的主要作用以及使用流程。
1216_【掌握】JWT結構分析 JWT為了可以包含更多的數據信息,同時也為了便于數據的安全以及解析處理,提供了完善的數據存儲結構,本課程為讀者分析了JWT中數據組成規范,同時講解了實際項目開發中JWT數據配置。
1217_【掌握】JWT數據服務 JWT組件為了便于用戶進行JWT數據的處理,提供了良好的支持,在本課程中將基于業務層的管理機制實現JWT數據的創建、解析、驗證以及刷新處理。
1218_【掌握】Token攔截 JWT數據直接決定了所調用的目標微服務能否正常執行,所以需要通過攔截器的機制進行Token存在以及有效性的判斷處理,本課程通過具體的代碼實現了訪問攔截。
1219_【理解】Vue.JS整合JWT認證 由于JWT的實現機制較為簡單,所以可以更好的應用于前后端分離項目架構之中,在本課程中基于Vue.JS整合了JWT登錄認證以及微服務訪問處理操作的實現。
1220_【掌握】Shiro整合簡介 Shiro是一款優秀的安全框架,在早期的SSM開發過程之中使用較為廣泛,同時為了配合SpringBoot實現模式,Shiro也提供有相關的依賴支持,本課程為讀者總結了Shiro的主要特點與核心結構概念。
1221_【掌握】Shiro用戶認證 為了便于Shiro的理解,在本次課程中將基于固定認證信息的模式實現Realm數據管理,同時基于過濾器配置的方式實現安全檢查。
1222_【掌握】Shiro訪問攔截 Shiro提供了完善的認證與授權訪問控制,在本課程中將采用自定義過濾器的形式實現Session與Subject數據的獲取,同時結合Shiro已有的機制實現了授權控制。