精通 Spring:Java Web 開發技術詳解 (微課視頻版)
內容描述
在Java Web開發領域,各種新技術層出不窮。本書介紹了用Spring開發Java Web應用的各種技術,包括Spring MVC框架、數據驗證、攔截器、異常處理機制、Web應用的國際化、服務器端異步處理客戶請求、AOP面向切麵編程、通過Spring JDBC API訪問數據庫、通過Spring Data API訪問數據庫、RESTFul風格編程、WebFlux響應式編程、用Spring整合CXF開發Web服務以及用Spring Cloud框架開發微服務等。本書還對目前比較流行的技術解決方案所蘊含的思想做了深刻的闡述,包括MVC設計模式、依賴註入、控制反轉、前後端分離、服務器端推送、Token機制、AOP編程思想、對象關系映射、響應式編程模型、RESTFul架構、分佈式的Web服務架構以及分佈式的微服務架構等。 無論對於Java開發的新手還是行家來說,本書都是精通Spring和Java Web開發技術的必備實用手冊。
目錄大綱
目錄
第1章Spring、Spring MVC與Java Web應用簡介
1.1Java Web 應用程序概述
1.1.1Servlet組件
1.1.2JSP組件
1.1.3 共享數據在Web應用中的範圍
1.1.4JavaBean 組件及其在 Web 應用程序中的活動範圍
1.1.5自定義的JSP標籤
1.1.6XML語言
1.1.7Web服務器端
1.2Web組件的三個關聯關係
1.2.1請求轉發
1.2.2請求生成
1.2.3 包含
1.3MVC概述
1.3.1MVC設計模式
1.3.2JSP 模型 1 和 JSP 模型 2
1.4Spring MVC概述
1.4.1Spring MVC的框架結構
1.4.2Spring MVC的工作流程
1.5Spring框架和它的分支框架
1.6小結
1.7 思考題
第2章第一個入門示例:helloapp應用
2.1 分析helloapp應用的需求
2.2 應用Spring MVC框架
2.3 創建視圖組件
2.3.1創建JSP文件
2.3.2創建消息資源文件
2.4 創建控制器組件
2.4.1Controller類的URL入口和請求轉發
2.4.2 訪問模型組件
2.4.3 與視圖組件共享數據
2.4.4Web組件訪問共享數據的原生態方式
2.5 創建模型組件
2.6 創建配置文件
2.6.1創建Web應用的配置文件
2.6.2創建Spring MVC框架的配置文件
2.6.3 訪問睡眠資源文件
2.7 發布和運行helloapp應用
2.7.1次訪問hello.jsp的流程
2.7.2數據驗證的流程
2.8 依賴注入和控制
2.9 向Spring框架註冊Bean組件的方式
2.10小結
2.11 思考題
第3章控制器層的常用類和註解
3.1用@Controller註解標識控制器類
3.2控制器對象的存在範圍
3.3 設置控制器類的請求處理方法的URL入口
3.3.1設置URL入口的普通方式
3.3.2 限制URL入口的請求參數、請求方式和請求頭
3.3.3@GetMapping和@PostMapping等簡化形式的註解
3.4綁定HTTP請求數據和控制器類的方法參數
3.4.1 直接定義和請求參數同名的方法參數
3.4.2用@RequestParam註解綁定請求參數
3.4.3用@RequestHeader註解綁定HTTP請求頭
3.4.4用@CookieValue註解綁定Cookie
3.4.5用@PathVariable註解綁定REST風格的URL變量
3.4.6 把一組請求參數和一個JavaBean類型方法的參數綁定
3.5 請求參數的類型轉換
3.5.1創建包含表單的hello.jsp
3.5.2創建包含個人信息的個人類
3.5.3創建類型轉換器PersonConverter類
3.5.4在Spring MVC配置文件中註冊類型轉換器
3.5.5 創建處理請求參數的控制器類PersonController
3.6 請求參數的格式轉換
3.7控制器類的方法的參數類型
3.8 控制器類的方法的返回類型
3.8.1String返回類型
3.8.2void 返回類型
3.9控制器與視圖的數據共享
3.9.1@ModelAttribute註解
3.9.2 模型接口
3.9.3ModelMap 類
3.9.4ModelAndView類
3.9.5 把模特中的數據在會場範圍內
3.9.6 通過@SessionAttribute註解讀取session範圍內的模型數據
3.10@ControllerAdvice註解的最合適
3.11小結
3.12 思考題
第4章視圖層創建HTML表單
4.1Spring標籤庫中的表單標籤
4.1.1表單標籤form:form
4.1.2文本框標籤form:input
4.1.3密碼框標籤form:password
4.1.4隱藏框標籤form:hidden
4.1.5文本域標籤form:textarea
4.1.6主題標籤form:checkbox
4.1.7 組合標籤form:checkboxes
4.1.8 單選按鈕標籤形式:單選按鈕標籤
4.1.9組合單選按鈕標籤形式:radiobuttons
4.1.10 下拉列表標籤形式:選擇
4.1.11輸出錯誤消息的標籤form:errors
4.2 處理複雜表單的Web應用示例
4.2.1在JSP文件中生成複雜表單
4.2.2控制器類與視圖共識表單數據
4.3 設置HTTP請求和響應結果的字符編碼
4.4小結
4.5 思考題
第5章數據驗證
5.1按照JSR303規范進行數據驗證
5.1.1 數據驗證註解
5.1.2自定義數據驗證註解
5.1.3在Spring MVC的配置文件中配置Hibernate Validator驗證器
5.1.4 在控制器類中進行數據驗證
5.1.5在JSP文件中指定顯示錯誤消息的CSS樣式
5.2Spring框架的數據驗證機制
5.2.1實現Spring的Validator接口
5.2.2用數據驗證類進行數據驗證
5.3小結
5.4 思考題
第6章攔截器
6.1攔截器的基本最佳
6.1.1創建自定義的攔截器
6.1.2配置攔截器
6.1.3攔截器的執行流程
6.2 攔截的攔截器
6.3示例: 用攔截器實現用戶身份驗證
6.4小結
6.5 思考題
第7章異常處理
7.1Spring MVC的異常處理機制
7.1.1 處理視圖層的異常
7.1.2 處理HTTP狀態代碼為404的錯誤
7.1.3 處理模型層的異常
7.1.4 處理控制器層的異常
7.2使用SimpleMappingExceptionResolver類
7.3實現HandlerExceptionResolver接口
7.4使用@ExceptionHandler註解
7.4.1在控制器類中用@ExceptionHandler註解說明多種方法
7.4.2在控制器增強類中使用@ExceptionHandler註解
7.5小結
7.6 思考題
第8章Web應用的國際化
8.1Locale類的用語
8.2Spring MVC框架的處理國際化的接口和類
8.3 使用SessionLocaleResolver
8.3.1 在 JSP 文件的 URL 中包含表示 Locale 的請求參數
8.3.2創建和配置消息資源文件
8.3.3 在控制器類中讀取消息文本
8.3.4 讀取帶參數的消息文本
8.3.5 在控制器類中測試Locale信息
8.4 使用CookieLocaleResolver
8.5 使用AcceptHeaderLocaleResolver
8.6小結
8.7 思考題
第9章Spring MVC的各種實用操作
9.1文件上傳
9.2文件下載
9.3利用jax和JSON實現前重新開放A
9.3.1JSON 數據格式
9.3.2用@RequestBody和@ResponseBody註解轉換JSON格式的請求和響應
9.3.3用JavaScript和Ajax開發前端網頁
9.4利用Token機制解決重複提交
9.4.1用自定義的攔截器來管理Token
9.4.2 定義並在控制器類中使用@Token註解
9.4.3 在HTML表單中定義token隱藏字段
9.5 服務器端發送
9.5.1在多個TCP連接中發送數據
9.5.2在一個長TCP連接中傳輸數據
9.6小結
9.7 思考題
第10章異步處理客戶端請求
10.1 異步處理客戶端請求的基本原理
10.2在web.xml文件中啟用異步處理功能
10.3 配置異步處理線程池
10.4 請求處理方法返回類型為Callable
10.5 請求處理方法返回類型為WebAsyncTask
10.6 請求處理方法返回類型為DeferredResult
10.7 處理異步操作中產生的異常
10.8小結
10.9 思考題
第11章AOP詳細切面編程和輸出日誌
11.1SLF4J和Log4J的整合
11.2通過SLF4J API輸出日誌
11.3AOP的基本概念和原理
11.4用AOP和SLF4J輸出日誌的範例
11.5通過配置方式配置切麵類
11.6小結
11.7 思考題
第12章創建模型層組件
12.1 安裝 MySQL 數據庫和創建 SAMPLEDB 數據庫
12.2通過Spring JDBC API訪問數據庫
12.3 在 Spring 配置文件中配置數據源和事務管理器
12.4創建DAO層組件
12.4.1 向數據庫新增客戶對象
12.4.2獲得新增客戶對象的ID
12.4.3 向數據庫更新客戶對象
12.4.4向數據庫示範更新客戶對象
12.4.5 向數據庫刪除客戶對象
12.4.6 向數據庫查詢一個客戶對象
12.4.7 向數據庫查詢多個Customer對象
12.5 創建業務邏輯服務層組件
12.6@Repository註解和@Service註解
12.7用@Transactional註解聲明事務
12.7.1 事務傳播行為
12.7.2 事務隔離級別
12.7.3 超時
12.7.4 事務的只讀屬性
12.7.5事務撤銷規則
12.8控制器層訪問模型層組件
12.9小結
12.10 思考題
第13章通過Spring Data API訪問數據庫
13.1ORM的基本原理
13.1.1描述對象-映射信息的元數據
13.1.2訪問ORM軟件的API
13.2Spring Data API 的主要接口
13.3 創建通過 Spring Data API 訪問數據庫的範例
13.3.1創建CustomerDao接口
13.3.2創建CustomerService接口和實現類
13.3.3創建Spring配置文件
13.4Repository接口的用法
13.4.1在查詢方法名中設置條件查詢
13.4.2用@Query註解設置查詢語句
13.4.3通過@Query和@Modifying註解進行添加、更新和刪除操作
13.5CrudRepository 接口的用處
13.6PagingAndSortingRepository接口的最合適
13.6.1對查詢結果分頁
13.6.2對查詢結果排序
13.7JpaRepository 接口的用處
13.8JpaSpecificationExecutor接口的用處
13.9 通過JPA API 實現自定義Repository接口
13.10用Maven下載所依賴的類庫
13.11小結
13.12 思考題
第14章創建綜合購物網站應用
14.1 實現業務數據
14.2 實現業務邏輯服務層
14.3實現DAO層
14.4 實現控制器層
14.4.1客戶身份驗證
14.4.2 管理購物車
14.4.3 管理訂單
14.5 配置、發布和運行netstore應用
14.5.1 安裝SAMPLEDB數據庫
14.5.2發布netstore應用
14.5.3運行netstore應用
14.6小結
14.7 思考題
第15章創建RESTFul風格的Web應用
15.1RESTFul風格的HTTP請求
15.2控制器類處理RESTFul風格的HTTP請求
15.2.1 讀取客戶請求中的RESTFul樣式的URL變量
15.2.2 讀取客戶請求中的JSON格式的Java對象的數據
15.2.3 請求處理方法的返回類型
15.3 客戶端發送RESTFul風格的HTTP請求
15.4通過RestTemplate類模擬客戶端程序
15.5小結
15.6 思考題
第16章WebFlux響應式編程
16.1Spring WebFlux框架概述
16.2WebFlux框架訪問MySQL數據庫
16.3WebFlux框架的註解開發模式
16.3.1用R2DBC映射註解來映射客戶實體類
16.3.2創建CustomerDao接口
16.3.3創建CustomerService業務邏輯服務接口以及實現類
16.3.4創建CustomerController類
16.3.5上傳和下載文件
16.4WebFlux框架的函數式開發模式
16.5 用 Intellij IDEA 開發工具開發 WebFlux 應用程序
16.5.1搭建helloapp應用的基本框架
16.5.2創建Java類以及Spring屬性配置文件
16.5.3創建Maven配置文件pom.xml
16.5.4由Spring Boot創建的HelloappApplication啟動類
16.5.5運行helloapp應用
16.5.6 整合JUnit寫測試程序
16.6小結
16.7 思考題
第17章基於WebSocket的通信通信
17.1WebSocket 的基本原理
17.2Spring WebSocket API簡介
17.3用WebSocket創建聊天應用
17.3.1創建WebSocket捕捉攔截器類
17.3.2創建WebSocket通信處理器類
17.3.3配置WebSocket攔截器類和通信處理器類
17.3.4創建重登錄聊天室的控制器類
17.3.5創建負責客戶端登錄以及WebSocket通信的JSP文件
17.3.6 運行範例程序
17.4小結
17.5 思考題
第18章用Spring整合CXF開發Web服務
18.1Web服務扶的基本原理
18.2CXF框架和JWS API
18.3創建提供Web服務的Web應用
18.3.1創建Web服務接口和實現類
18.3.2在Spring配置文件中配置Web服務
18.3.3在web.xml配置文件中配置CXF
18.3.4在Tomcat中發布Web服務
18.4 創建訪問 Web 服務的 Web 應用程序
18.5小結
18.6 思考題
第19章用Spring雲開發微服務
19.1 微服務架構的基本原理
19.2Spring Cloud框架概述
19.3 創建採用 Spring Cloud框架的cloudappapplication
19.4創建微服務註冊中心eurekamodule模塊
19.4.1創建EurekamoduleApplication啟動類
19.4.2配置eurekamodule模塊
19.4.3通過瀏覽器訪問Eureka服務器端
19.5 創建提供微服務的服務模塊模塊
19.5.1創建ServicemoduleApplication啟動類
19.5.2創建微服務入口ServiceController類
19.5.3配置服務模塊
19.5.4運行servicemodule模塊
19.6創建訪問微服務的clientmodule模塊
19.6.1創建ClientmoduleApplication啟動類
19.6.2創建訪問微服務的ClientController類
19.6.3 通過Feign訪問微服務
19.6.4配置客戶端模塊
19.6.5運行clientmodule模塊
19.7小結
19.8 思考題
附錄A部分軟件的安裝和使用
A.1本書所用軟件的下載地址
A.2 部分軟件的安裝
A.2.1 安裝JDK
A.2.2 安裝ANT
A.2.3 安裝Tomcat
A.3 編譯源程序
A.4 處理警告和運行錯誤
附錄 B 思考題答案
作者介紹
孫衛琴,著名 IT 作家和 Java 專家,上海交通大學擅長設計,主要從事 Java 的軟件開發工作,Java 軟件研究和架構,還從事 Java 方面的培訓和諮詢工作。
2002年開始Java技術的創作,文風清晰的觀眾領域、深入淺出,熱烈歡迎,其多部作品的暢銷榜在同類書籍中位居全國首。