背景
開始時間:2019/09/18 21:30
Spring5高級編程
版次:2019-01-01(第5版)
Spring5最新版本:5.1.9 CURRENT GA
目錄
第1章 Spring介紹
1.1. 什么是Spring
Spring被描述為構建Java應用程序的輕量級框架。
輕量級指的並不是類的數量或發布的大小,而是整體性定義Spring原則:最輕的影響。
1.1.1. Spring框架的演變
Spring 4.0x 是第一個完全支持Java8的版本,最低要求Java6。
Spring 5.x 基於Java8,與Java9完全兼容。
第2章 入門
2.1 獲取Spring框架
2.1.1 快速入門
版本2.0.0.RELEASE之前的Spring Boot版本使用Spring4.x版本。
2.2 了解Spring打包
2.2.3 使用Gradle訪問Spring模塊
從版本4.x
開始,Spring團隊轉向使用Gradle
來配置
從Spring3.0開始,開發Spring應用程序時不再需要XML配置文件。可以將它們替換為注解和配置類。
ClassPathXmlApplicationContext
從配置文件中讀取bean定義。
AnnotationConfigApplicationContext
從配置類讀取bean定義。
第3章 在Spring中引入IoC和DI
第4章 詳述Spring配置和Spring Boot
第5章 Spring AOP
第6章 Spring JDBC支持
第7章 在Spring中使用Hibernate
目前一直使用的是Mybatis,暫不學習Hibernate
第8章 在Spring中使用JPA 2進行數據訪問
在Hibernate之后,JCP開發了Java數據對象(JDO)標准,然后開發了JPA。
Hibernate是JPA的一種實現,Mybatis不是。都屬於ORM框架。
一直使用的是Mybatis,暫不學習JPA。
第9章 事務管理
第10章 使用類型轉換和格式化進行驗證
第11章 任務調度
第12章 使用Spring遠程處理
第13章 Spring測試
13.1 測試類別介紹
13.2 使用Spring測試注解
Spring提供了特定於測試的注解:
這一章沒有仔細學習,一方面平時開發中測試不重要,另一方面內容講的比較淺,以后可以深入學習JUnit
和Spring-Test
項目
第14章 Spring中的腳本支持
14.1 在Java中使用腳本支持
從Java6開始,JSR-223就被捆綁到JDK中,目的是提供一種標准機制,進而在JVM上運行其他腳本語言編寫的邏輯。腳本支持類在javax.script
包中。
14.2 Groovy介紹
Groovy
創建的主要目的是為JVM提供靈活的動態語言,構建在Java基礎之上,彌補了Java中的一些缺陷。Groovy的動態類型支持為處理應用程序邏輯中的類屬性和變量提供了更大的靈活性。Groovy支持閉包。支持DSL。
DSL
是針對特定領域的語言,其目的是建議李忠不僅可以被開發者理解,也可以被業務分析師和用戶理解的語言。
這一章沒有認真學習,開發中目前沒見到過,可以深入學習一下Groovy
第15章 應用程序監控
JMX
(Java Management Extensions):Java管理擴展
在JMX中,公開用於JMX監控和管理的類被稱為托管bean(通常成為MBean
)。Spring框架支持多種公開MBean的機制。
沒認真學習,可以深入學習JMX,spring-boot-starter-actuator
第16章 Web應用程序
第17章 WebSocket
17.1 WebSocket介紹
WebSocket
是作為HTML5計划的一部分而開發的一種規范,可以實現在客戶端和服務器之間發送消息的全雙工單套接字連接。
WebSocket協議旨在取代所有現有的使用HTTP作為傳輸的雙向通信方法。
WebSocket協議由兩部分:首先是客戶端和服務器之間的握手,然后是數據傳輸。WebSocket連接是在客戶端和服務器之間的初始握手期間,通過在相同的底層TCP/IP連接上發出從HTTP到WebSocket協議的升級請求來建立的。在通信的數據傳輸部分,客戶端和服務器都可以同時向雙方發送消息。
17.2 與Spring一起使用WebSocket
從Spring4開始,Spring框架支持WebSocket樣式的消息傳遞以及STOMP
作為應用程序級別的子協議。在框架內,可以在spring-websocket
模塊中找到對WebSocket的支持,該模塊與JSR-356(Java WebSocket)兼容。
並非所有的Web瀏覽器都支持該協議,Spring通過Sock JS協議提供了透明的后備選項。
WebSocket本身是一個簡單的將字節轉換為消息的低級協議。
鑒於WebSocket的單一套接字特性及其提供連續雙向數據流的能力,WebSocket非常適用於需要高頻率消息傳遞和低延遲通信的應用程序。可使用WebSocket的應用程序包括游戲、實時群組協作工具、消息傳遞系統、時間敏感的定價信息等。
17.3 使用WebSocket API
當使用Spring的WebSocket API時,通常需要實現org.springframework.web.socket.WebSocketHandler
接口或使用便利的子類。
通過實現org.springframework.web.socket.config.annotation.WebSocketConfigurer
接口來配置WebSocket請求處理。
@EnableWebSocket
17.4 使用STOMP發送消息
在使用WebSocket時,通常會使用STOMP等子協議作為客戶端和服務器之間的通用格式,以便客戶端和服務器都知道應該發生什么並做出相應的反應。Spring框架支持STOMP。
STOMP
是一種簡單的基於幀的消息傳遞協議(建立在HTTP基礎之上),可用於任何可靠的雙向流網絡協議,比如WebSocket。
第18章 Spring項目:批處理、集成和XD等
18.1 Spring Batch
Spring Batch是一個批處理框架,構建在核心Spring框架上。
Spring Batch提供了作業縮放和並行處理的能力。
18.2 JSR-352
Spring Batch完全支持JSR-352(針對Java平台的批處理應用程序)。
18.3 Spring Boot Batch
Spring Boot為Spring Batch提供一個啟動器。
18.4 Spring Integration
Spring Integration項目提供了企業集成模式(Enterprise Integration Pattern,EIP)的開箱即用型實現。側重於消息驅動架構,為集成解決方案、異步功能和松耦合組件提供了一個簡單的模型,並且它是為可擴展性和可測試性而設計的。
18.5 Spring XD
Spring XD是一個可擴展的運行時服務,專為分布式數據采集、實時分析、批處理和數據導出而設計。Spring XD基於許多現有的Spring組合項目,主要是Spring Framework、Spring Batch和Spring Integration。Spring XD的目標是提供一種統一的方式,用以將許多系統集成到一個統一的大數據解決方案中,從而幫助減少許多常見用例的復雜性。
18.6 Spring框架的五個最顯著的功能
18.6.1 功能性Web框架
功能型Web框架(spring-webflux模塊)是對Spring MVC的反應式補充,他提供一個針對異步API設計的Web編程模型。該框架是根據反應式編程原則構建的。
18.6.3 JDK模塊化
JDK模塊化被認為是Java9最大的改進之處。模塊化功能被稱為Project Jigsaw
。
18.6.5 Spring支持JUnit 5 Jupiter
JUnit Jupiter是新的編程模型和擴展模型的組合,用於在Junit5中編寫測試和擴展。JUnit子項目提供了一個TestEngine,用於在平台上運行基於Jupiter的測試。