精通Spring 4·x ——企業套用開發實戰

精通Spring 4·x ——企業套用開發實戰

《精通Spring 4·x ——企業套用開發實戰》是2017年1月電子工業出版社出版的圖書,作者是陳雄華、林開雄、文建國。

基本介紹

  • 中文名:精通Spring 4·x ——企業套用開發實戰
  • 作者:陳雄華、林開雄、文建國
  • 出版時間:2017年1月
  • 出版社電子工業出版社
  • 頁數:820 頁
  • ISBN:9787121304439
  • 定價:128 元
  • 開本:16 開
內容簡介,圖書目錄,

內容簡介

Spring 4.0是Spring在積蓄4年後,隆重推出的一個重大升級版本,進一步加強了Spring作為Java領域第一開源平台的翹楚地位。Spring 4.0引入了眾多Java開發者翹首以盼的基於Groovy Bean的配置、HTML 5/WebSocket支持等新功能,全面支持Java 8.0,最低要求是Java 6.0。這些新功能實用性強、易用性高,可大幅降低Java套用,特別是Java Web套用開發的難度,同時有效提升套用開發的優雅性。本書是在《精通Spring 3.x——企業套用開發詳解》的基礎上,歷時一年的重大調整改版而成的,延續了上一版本“追求深度,注重原理,不停留在技術表面”的寫作風格,力求使讀者在熟練使用Spring的各項功能的同時透徹理解Spring的內部實現,真正做到知其然並知其所以然。此外,本書重點突出了“實戰性”的主題,力求使全書內容體現“從實際項目中來,到實際項目中去”的寫作原則。

圖書目錄

第1篇 基礎篇
第1章 Spring概述 2
1.1 認識Spring 2
1.2 關於SpringSource 4
1.3 Spring帶給我們什麼 5
1.4 Spring體系結構 6
1.5 Spring對Java版本的要求 8
1.6 Spring 4.0新特性 8
1.6.1 全面支持Java 8.0 9
1.6.2 核心容器的增強 11
1.6.3 支持用Groovy定義Bean 12
1.6.4 Web的增強 12
1.6.5 支持WebSocket 12
1.6.6 測試的增強 13
1.6.7 其他 13
1.7 Spring子項目 13
1.8 如何獲取Spring 15
1.9 小結 16
第2章 快速入門 17
2.1 實例概述 17
2.1.1 比Hello World更適用的實例 18
2.1.2 實例功能簡介 18
2.2 環境準備 20
2.2.1 構建工具Maven 20
2.2.2 創建庫表 22
2.2.3 建立工程 23
2.2.4 類包及Spring配置檔案規劃 28
2.3 持久層 29
2.3.1 建立領域對象 29
2.3.2 UserDao 30
2.3.3 LoginLogDao 33
2.3.4 在Spring中裝配DAO 34
2.4 業務層 35
2.4.1 UserService 35
2.4.2 在Spring中裝配Service 37
2.4.3 單元測試 38
2.5 展現層 40
2.5.1 配置Spring MVC框架 40
2.5.2 處理登錄請求 42
2.5.3 JSP視圖頁面 44
2.6 運行Web套用 46
2.7 小結 48
第3章 Spring Boot 49
3.1 Spring Boot概覽 49
3.1.1 Spring Boot發展背景 50
3.1.2 Spring Boot特點 50
3.1.3 Spring Boot啟動器 50
3.2 快速入門 52
3.3 安裝配置 54
3.3.1 基於Maven環境配置 54
3.3.2 基於Gradle環境配置 56
3.3.3 基於Spring Boot CLI環境
配置 57
3.3.4 代碼包結構規劃 58
3.4 持久層 59
3.4.1 初始化配置 59
3.4.2 UserDao 61
3.5 業務層 62
3.6 展現層 64
3.6.1 配置pom.xml依賴 64
3.6.2 配置Spring MVC框架 65
3.6.3 處理登錄請求 65
3.7 運維支持 67
3.8 小結 70
? 第2篇 核心篇
第4章 IoC容器 72
4.1 IoC概述 72
4.1.1 通過實例理解IoC的概念 73
4.1.2 IoC的類型 75
4.1.3 通過容器完成依賴關係的
注入 77
4.2 相關Java基礎知識 78
4.2.1 簡單實例 78
4.2.2 類裝載器ClassLoader 80
4.2.3 Java反射機制 83
4.3 資源訪問利器 85
4.3.1 資源抽象接口 85
4.3.2 資源載入 88
4.4 BeanFactory和ApplicationContext 91
4.4.1 BeanFactory介紹 92
4.4.2 ApplicationContext介紹 94
4.4.3 父子容器 103
4.5 Bean的生命周期 103
4.5.1 BeanFactory中Bean的生命
周期 103
4.5.2 ApplicationContext中Bean
的生命周期 112
4.6 小結 114
第5章 在IoC容器中裝配Bean 115
5.1 Spring配置概述 116
5.1.1 Spring容器高層視圖 116
5.1.2 基於XML的配置 117
5.2 Bean基本配置 120
5.2.1 裝配一個Bean 120
5.2.2 Bean的命名 120
5.3 依賴注入 121
5.3.1 屬性注入 121
5.3.2 構造函式注入 124
5.3.3 工廠方法注入 128
5.3.4 選擇注入方式的考量 130
5.4 注入參數詳解 130
5.4.1 字面值 130
5.4.2 引用其他Bean 131
5.4.3 內部Bean 133
5.4.4 null值 133
5.4.5 級聯屬性 134
5.4.6 集合類型屬性 134
5.4.7 簡化配置方式 138
5.4.8 自動裝配 141
5.5 方法注入 142
5.5.1 lookup方法注入 142
5.5.2 方法替換 143
5.6 之間的關係 144
5.6.1 繼承 144
5.6.2 依賴 145
5.6.3 引用 146
5.7 整合多個配置檔案 147
5.8 Bean作用域 148
5.8.1 singleton作用域 148
5.8.2 prototype作用域 149
5.8.3 與Web套用環境相關的Bean
作用域 150
5.8.4 作用域依賴問題 152
5.9 FactoryBean 153
5.10 基於註解的配置 155
5.10.1 使用註解定義Bean 155
5.10.2 掃描註解定義的Bean 156
5.10.3 自動裝配Bean 157
5.10.4 Bean作用範圍及生命過程
方法 162
5.11 基於Java類的配置 164
5.11.1 使用Java類提供Bean定義
信息 164
5.11.2 使用基於Java類的配置信息
啟動Spring容器 167
5.12 基於Groovy DSL的配置 169
5.12.1 使用Groovy DSL提供Bean
定義信息 169
5.12.2 使用GenericGroovyApplication
Context啟動Spring容器 171
5.13 通過編碼方式動態添加Bean 172
5.13.1 通過DefaultListableBean
Factory 172
5.13.2 擴展自定義標籤 173
5.14 不同配置方式比較 175
5.15 小結 177
第6章 Spring容器高級主題 178
6.1 Spring容器技術內幕 178
6.1.1 內部工作機制 179
6.1.2 BeanDefinition 182
6.1.3 InstantiationStrategy 183
6.1.4 BeanWrapper 183
6.2 屬性編輯器 184
6.2.1 JavaBean的編輯器 185
6.2.2 Spring默認屬性編輯器 188
6.2.3 自定義屬性編輯器 189
6.3 使用外部屬性檔案 192
6.3.1 PropertyPlaceholderConfigurer
屬性檔案 192
6.3.2 使用加密的屬性檔案 195
6.3.3 屬性檔案自身的引用 198
6.4 引用Bean的屬性值 199
6.5 國際化信息 201
6.5.1 基礎知識 201
6.5.2 MessageSource 206
6.5.3 容器級的國際化信息資源 209
6.6 容器事件 210
6.6.1 Spring事件類結構 211
6.6.2 解構Spring事件體系的具體
實現 213
6.6.3 一個實例 214
6.7 小結 215
第7章 Spring AOP基礎 216
7.1 AOP概述 216
7.1.1 AOP到底是什麼 217
7.1.2 AOP術語 219
7.1.3 AOP的實現者 221
7.2 基礎知識 222
7.2.1 帶有橫切邏輯的實例 222
7.2.2 JDK動態代理 224
7.2.3 CGLib動態代理 228
7.2.4 AOP聯盟 229
7.2.5 代理知識小結 230
7.3 創建增強類 230
7.3.1 增強類型 230
7.3.2 前置增強 231
7.3.3 後置增強 235
7.3.4 環繞增強 236
7.3.5 異常拋出增強 237
7.3.6 引介增強 239
7.4 創建切面 243
7.4.1 切點類型 243
7.4.2 切面類型 244
7.4.3 靜態普通方法名匹配切面 246
7.4.4 靜態正則表達式方法匹配
切面 248
7.4.5 動態切面 251
7.4.6 流程切面 254
7.4.7 複合切點切面 256
7.4.8 引介切面 258
7.5 自動創建代理 259
7.5.1 實現類介紹 259
7.5.2 BeanNameAutoProxyCreator 260
7.5.3 DefaultAdvisorAutoProxy
Creator 261
7.5.4 AOP無法增強疑難問題
剖析 262
7.6 小結 267
第8章 基於@AspectJ和Schema的
AOP 269
8.1 Spring對AOP的支持 269
8.2 Java 5.0註解知識快速進階 270
8.2.1 了解註解 270
8.2.2 一個簡單的註解類 271
8.2.3 使用註解 272
8.2.4 訪問註解 273
8.3 著手使用@AspectJ 274
8.3.1 使用前的準備 275
8.3.2 一個簡單的例子 275
8.3.3 如何通過配置使用@AspectJ
切面 277
8.4 @AspectJ語法基礎 278
8.4.1 切點表達式函式 278
8.4.2 在函式入參中使用通配符 279
8.4.3 邏輯運算符 280
8.4.4 不同增強類型 281
8.4.5 引介增強用法 282
8.5 切點函式詳解 283
8.5.1 @annotation() 284
8.5.2 execution() 285
8.5.3 args()和@args() 287
8.5.4 within() 288
8.5.5 @within()和@target() 289
8.5.6 target()和this() 290
8.6 @AspectJ進階 291
8.6.1 切點複合運算 292
8.6.2 命名切點 292
8.6.3 增強織入的順序 294
8.6.4 訪問連線點信息 294
8.6.5 綁定連線點方法入參 295
8.6.6 綁定代理對象 297
8.6.7 綁定類註解對象 298
8.6.8 綁定返回值 299
8.6.9 綁定拋出的異常 299
8.7 基於Schema配置切面 300
8.7.1 一個簡單切面的配置 300
8.7.2 配置命名切點 302
8.7.3 各種增強類型的配置 303
8.7.4 綁定連線點信息 305
8.7.5 Advisor配置 306
8.8 混合切面類型 307
8.8.1 混合使用各種切面類型 308
8.8.2 各種切面類型總結 308
8.9 其他 309
8.9.1 JVM Class檔案位元組碼轉換
基礎知識 309
8.9.2 使用LTW織入切面 311
8.10 小結 314
第9章 Spring SpEL 316
9.1 JVM動態語言 316
9.2 SpEL表達式概述 318
9.3 SpEL核心接口 319
9.3.1 EvaluationContext接口 320
9.3.2 SpEL編譯器 321
9.4 SpEL基礎表達式 323
9.4.1 文本字元解析 323
9.4.2 對象屬性解析 323
9.4.3 數組、集合類型解析 324
9.4.4 方法解析 326
9.4.5 操作符解析 327
9.4.6 安全導航操作符 329
9.4.7 三元操作符 330
9.4.8 Elvis操作符 331
9.4.9 賦值、類型、構造器、變數 332
9.4.10 集合過濾 335
9.4.11 集合轉換 335
9.5 在Spring中使用SpEL 336
9.5.1 基於XML的配置 336
9.5.2 基於註解的配置 337
9.6 小結 338
? 第3篇 數據篇
第10章 Spring對DAO的支持 340
10.1 Spring的DAO理念 340
10.2 統一的異常體系 341
10.2.1 Spring的DAO異常體系 341
10.2.2 JDBC的異常轉換器 343
10.2.3 其他持久化技術的異常
轉換器 344
10.3 統一數據訪問模板 344
10.3.1 使用模板和回調機制 345
10.3.2 Spring為不同持久化技術
所提供的模板類 347
10.4 數據源 348
10.4.1 配置一個數據源 348
10.4.2 獲取JNDI數據源 352
10.4.3 Spring的數據源實現類 353
10.5 小結 353
第11章 Spring的事務管理 355
11.1 資料庫事務基礎知識 355
11.1.1 何為資料庫事務 356
11.1.2 數據並發的問題 357
11.1.3 資料庫鎖機制 359
11.1.4 事務隔離級別 360
11.1.5 JDBC對事務的支持 361
11.2 ThreadLocal基礎知識 362
11.2.1 ThreadLocal是什麼 363
11.2.2 ThreadLocal的接口方法 363
11.2.3 一個TheadLocal實例 364
11.2.4 與Thread同步機制的比較 366
11.2.5 Spring使用ThreadLocal解決
執行緒安全問題 366
11.3 Spring對事務管理的支持 368
11.3.1 事務管理關鍵抽象 369
11.3.2 Spring的事務管理器實現類 371
11.3.3 事務同步管理器 374
11.3.4 事務傳播行為 375
11.4 編程式的事務管理 376
11.5 使用XML配置聲明式事務 377
11.5.1 一個將被實施事務增強的
服務接口 379
11.5.2 使用原始的TransactionProxy
FactoryBean 379
11.5.3 基於aop/tx命名空間的配置 382
11.6 使用註解配置聲明式事務 385
11.6.1 使用@Transactional註解 385
11.6.2 通過AspectJ LTW引入事務
切面 389
11.7 集成特定的套用伺服器 390
11.7.1 BEA WebLogic 390
11.7.2 WebSphere 390
11.8 小結 390
第12章 Spring的事務管理難點剖析 392
12.1 DAO和事務管理的牽絆 393
12.1.1 JDBC訪問資料庫 393
12.1.2 Hibernate訪問資料庫 395
12.2 套用分層的迷惑 398
12.3 事務方法嵌套調用的迷茫 401
12.3.1 Spring事務傳播機制回顧 401
12.3.2 相互嵌套的服務方法 402
12.4 多執行緒的困惑 405
12.4.1 Spring通過單實例化Bean
簡化多執行緒問題 405
12.4.2 啟動獨立執行緒調用事務
方法 405
12.5 聯合軍種作戰的混亂 408
12.5.1 Spring事務管理器的應對 408
12.5.2 Hibernate+Spring JDBC
混合框架的事務管理 408
12.6 特殊方法成漏網之魚 412
12.6.1 哪些方法不能實施Spring
AOP事務 412
12.6.2 事務增強遺漏實例 413
12.7 數據連線泄露 416
12.7.1 底層連線資源的訪問問題 416
12.7.2 Spring JDBC數據連線泄露 417
12.7.3 事務環境下通過DataSource
Utils獲取數據連線 420
12.7.4 無事務環境下通過DataSource
Utils獲取數據連線 422
12.7.5 JdbcTemplate如何做到對連線
泄露的免疫 424
12.7.6 使用TransactionAwareData
SourceProxy 425
12.7.7 其他數據訪問技術的等價類 426
12.8 小結 426
第13章 使用Spring JDBC訪問
資料庫 428
13.1 使用Spring JDBC 428
13.1.1 JdbcTemplate小試牛刀 429
13.1.2 在DAO中使用Jdbc
Template 429
13.2 基本的數據操作 431
13.2.1 更改數據 431
13.2.2 返回資料庫的表自增主鍵值 434
13.2.3 批量更改數據 436
13.2.4 查詢數據 437
13.2.5 查詢單值數據 440
13.2.6 調用存儲過程 442
13.3 BLOB/CLOB類型數據的操作 444
13.3.1 如何獲取本地數據連線 445
13.3.2 相關的操作接口 446
13.3.3 插入LOB類型的數據 448
13.3.4 以塊數據方式讀取LOB
數據 450
13.3.5 以流數據方式讀取LOB
數據 451
13.4 自增鍵和行集 452
13.4.1 自增鍵的使用 452
13.4.2 如何規劃主鍵方案 454
13.4.3 以行集返回數據 456
13.5 NamedParameterJdbcTemplate
模板類 456
13.6 小結 459
第14章 整合其他ORM框架 460
14.1 Spring整合ORM技術 460
14.2 在Spring中使用Hibernate 462
14.2.1 配置SessionFactory 462
14.2.2 使用HibernateTemplate 465
14.2.3 處理LOB類型的數據 469
14.2.4 添加Hibernate事件監聽器 470
14.2.5 使用原生的Hibernate API 471
14.2.6 使用註解配置 472
14.2.7 事務處理 474
14.2.8 延遲載入問題 475
14.3 在Spring中使用MyBatis 476
14.3.1 配置SqlMapClient 476
14.3.2 在Spring中配置MyBatis 478
14.3.3 編寫MyBatis的DAO 479
14.4 DAO層設計 482
14.4.1 DAO基類設計 482
14.4.2 查詢接口方法設計 484
14.4.3 分頁查詢接口設計 486
14.5 小結 487
? 第4篇 套用篇
第15章 Spring Cache 490
15.1 快取概述 490
15.1.1 快取的概念 490
15.1.2 使用Spring Cache 493
15.2 掌握Spring Cache抽象 498
15.2.1 快取註解 498
15.2.2 快取管理器 504
15.2.3 使用SpEL表達式 506
15.2.4 基於XML的Cache聲明 506
15.2.5 以編程方式初始化快取 507
15.2.6 自定義快取註解 509
15.3 配置Cache存儲 509
15.3.1 EhCache 510
15.3.2 Guava 510
15.3.3 HazelCast 511
15.3.4 GemFire 511
15.3.5 JSR-107 Cache 511
15.4 實戰經驗 513
15.5 小結 514
第16章 任務調度和異步執行器 516
16.1 任務調度概述 516
16.2 Quartz快速進階 517
16.2.1 Quartz基礎結構 518
16.2.2 使用SimpleTrigger 520
16.2.3 使用CronTrigger 522
16.2.4 使用Calendar 526
16.2.5 任務調度信息存儲 527
16.3 在Spring中使用Quartz 530
16.3.1 創建JobDetail 530
16.3.2 創建Trigger 533
16.3.3 創建Scheduler 534
16.4 在Spring中使用JDK Timer 536
16.4.1 Timer和TimerTask 536
16.4.2 Spring對Java Timer的支持 539
16.5 Spring對Java 5.0 Executor的
支持 540
16.5.1 了解Java 5.0的Executor 541
16.5.2 Spring對Executor所提供的
抽象 543
16.6 實際套用中的任務調度 544
16.6.1 如何產生任務 545
16.6.2 任務調度對應用程式集群的
影響 547
16.6.3 任務調度雲 547
16.6.4 Web應用程式中調度器的
啟動和關閉問題 549
16.7 小結 552
第17章 Spring MVC 553
17.1 Spring MVC體系概述 554
17.1.1 體系結構 554
17.1.2 配置DispatcherServlet 555
17.1.3 一個簡單的實例 560
17.2 註解驅動的控制器 565
17.2.1 使用@RequestMapping
映射請求 565
17.2.2 請求處理方法簽名 569
17.2.3 使用矩陣變數綁定參數 570
17.2.4 請求處理方法簽名詳細說明 571
17.2.5 使用HttpMessageConverter
575
17.2.6 使用@RestController和AsyncRestTemplate 584
17.2.7 處理模型數據 586
17.3 處理方法的數據綁定 591
17.3.1 數據綁定流程剖析 592
17.3.2 數據轉換 592
17.3.3 數據格式化 598
17.3.4 數據校驗 602
17.4 視圖和視圖解析器 611
17.4.1 認識視圖 611
17.4.2 認識視圖解析器 612
17.4.3 JSP和JSTL 613
17.4.4 模板視圖 618
17.4.5 Excel 621
17.4.6 PDF 623
17.4.7 輸出XML 625
17.4.8 輸出JSON 626
17.4.9 使用XmlViewResolver 626
17.4.10 使用ResourceBundleView
Resolver 627
17.4.11 混合使用多種視圖技術 628
17.5 本地化解析 630
17.5.1 本地化的概念 630
17.5.2 使用CookieLocaleResolver 631
17.5.3 使用SessionLocaleResolver 632
17.5.4 使用LocaleChange
Interceptor 632
17.6 檔案上傳 633
17.6.1 配置MultipartResolver 633
17.6.2 編寫控制器和檔案上傳表單
頁面 633
17.7 WebSocket支持 634
17.7.1 使用WebSocket 634
17.7.2 WebSocket的限制 638
17.8 雜項 639
17.8.1 靜態資源處理 639
17.8.2 裝配攔截器 643
17.8.3 異常處理 644
17.8.4 RequestContextHolder的
使用 646
17.9 小結 646
第18章 實戰案例開發 648
18.1 論壇案例概述 648
18.1.1 論壇整體功能結構 648
18.1.2 論壇用例描述 649
18.1.3 主要功能流程描述 651
18.2 系統設計 655
18.2.1 技術框架選擇 655
18.2.2 採用Maven構建項目 656
18.2.3 單元測試類包結構規劃 657
18.2.4 系統架構圖 658
18.2.5 PO類設計 658
18.2.6 持久層設計 659
18.2.7 服務層設計 660
18.2.8 Web層設計 661
18.2.9 資料庫設計 662
18.3 開發前的準備 663
18.4 持久層開發 664
18.4.1 PO類 664
18.4.2 DAO基類 666
18.4.3 通過擴展基類定義DAO類 670
18.4.4 DAO Bean的裝配 672
18.4.5 使用Hibernate二級快取 673
18.5 對持久層進行測試 675
18.5.1 配置Unitils測試環境 675
18.5.2 準備測試資料庫及測試
數據 676
18.5.3 編寫DAO測試基類 677
18.5.4 編寫BoardDao測試用例 678
18.6 服務層開發 680
18.6.1 UserService的開發 680
18.6.2 ForumService的開發 681
18.6.3 服務類Bean的裝配 683
18.7 對服務層進行測試 684
18.7.1 編寫Service測試基類 685
18.7.2 編寫ForumService測試
用例 685
18.8 Web層開發 687
18.8.1 BaseController的基類 687
18.8.2 用戶登錄和註銷 689
18.8.3 用戶註冊 691
18.8.4 論壇管理 692
18.8.5 論壇普通功能 694
18.8.6 分頁顯示論壇版塊的主題
帖子 696
18.8.7 web.xml配置 700
18.8.8 Spring MVC配置 702
18.9 對Web層進行測試 703
18.9.1 編寫Web測試基類 703
18.9.2 編寫ForumManageController
測試用例 704
18.10 開發環境部署 705
18.11 項目配置實戰經驗 708
18.11.1 “傳統的”Web項目屬性
檔案 708
18.11.2 如何規劃便於部署的Web
項目屬性檔案 709
18.11.3 數據源的配置 710
18.12 小結 712
? 第5篇 提高篇
第19章 Spring OXM 714
19.1 認識XML解析技術 714
19.1.1 什麼是XML 714
19.1.2 XML的處理技術 715
19.2 XML處理利器:XStream 717
19.2.1 XStream概述 717
19.2.2 快速入門 718
19.2.3 使用XStream別名 720
19.2.4 XStream轉換器 721
19.2.5 XStream註解 723
19.2.6 流化對象 725
19.2.7 持久化API 726
19.2.8 額外功能:處理JSON 727
19.3 其他常見的O/X Mapping開源
項目 729
19.3.1 JAXB 729
19.3.2 Castor 733
19.3.3 JiBX 738
19.3.4 總結比較 741
19.4 與Spring OXM整合 742
19.4.1 Spring OXM概述 742
19.4.2 整合OXM實現者 744
19.4.3 如何在Spring中進行配置 744
19.4.4 Spring OXM簡單實例 747
19.5 小結 749
第20章 實戰型單元測試 750
20.1 單元測試概述 751
20.1.1 為什麼需要單元測試 751
20.1.2 單元測試之誤解 752
20.1.3 單元測試之困境 754
20.1.4 單元測試基本概念 755
20.2 TestNG快速進階 757
20.2.1 TestNG概述 757
20.2.2 TestNG生命周期 758
20.2.3 使用TestNG 758
20.3 模擬利器Mockito 763
20.3.1 模擬測試概述 763
20.3.2 創建Mock對象 763
20.3.3 設定Mock對象的期望行為
及返回值 764
20.3.4 驗證互動行為 766
20.4 測試整合之王Unitils 767
20.4.1 Unitils概述 767
20.4.2 集成Spring 770
20.4.3 集成Hibernate 773
20.4.4 集成DbUnit 774
20.4.5 自定義擴展模組 775
20.5 使用Unitils測試DAO層 776
20.5.1 資料庫測試的難點 776
20.5.2 擴展DbUnit用Excel準備
數據 776
20.5.3 測試實戰 779
20.6 使用Unitils測試Service層 789
20.7 測試Web層 794
20.7.1 對LoginController進行單元
測試 794
20.7.2 使用Spring Servlet API模擬
對象 795
20.7.3 使用Spring RestTemplate
測試 797
20.8 小結 798

相關詞條

熱門詞條

聯絡我們