2019-02-20 Spring實戰(zhàn)(第4版)

目錄

編輯

第1部分 Spring的核心

第1章 Spring之旅 3

1.1 簡化Java開發(fā) 4

1.1.1 激發(fā)POJO的潛能 5

1.1.2 依賴注入 5

1.1.3 應(yīng)用切面 11

1.1.4 使用模板消除樣板式代碼 16

1.2 容納你的Bean 18

1.2.1 使用應(yīng)用上下文 19

1.2.2 bean的生命周期 20

1.3 俯瞰Spring風(fēng)景線 21

1.3.1 Spring模塊 22

1.3.2 Spring Portfolio 24

1.4 Spring的新功能 27

1.4.1 Spring 3.1新特性 27

1.4.2 Spring 3.2新特性 28

1.4.3 Spring 4.0新特性 30

1.5 小結(jié) 30

第2章 裝配Bean 33

2.1 Spring配置的可選方案 34

2.2 自動化裝配bean 35

2.2.1 創(chuàng)建可被發(fā)現(xiàn)的bean 35

2.2.2 為組件掃描的bean命名 38

2.2.3 設(shè)置組件掃描的基礎(chǔ)包 39

2.2.4 通過為bean添加注解實現(xiàn)自動裝配 40

2.2.5 驗證自動裝配 42

2.3 通過Java代碼裝配

bean 44

2.3.1 創(chuàng)建配置類 44

2.3.2 聲明簡單的bean 45

2.3.3 借助JavaConfig實現(xiàn)注入 46

2.4 通過XML裝配bean 48

2.4.1 創(chuàng)建XML配置規(guī)范 48

2.4.2 聲明一個簡單的

bean 49

2.4.3 借助構(gòu)造器注入初始化bean 50

2.4.4 設(shè)置屬性 56

2.5 導(dǎo)入和混合配置 61

2.5.1 在JavaConfig中引用XML配置 61

2.5.2 在XML配置中引用JavaConfig 63

2.6 小結(jié) 65

第3章 高級裝配 67

3.1 環(huán)境與profile 67

3.1.1 配置profile bean 69

3.1.2 激活profile 73

3.2 條件化的bean 75

3.3 處理自動裝配的歧義性 78

3.3.1 標示首選的bean 79

3.3.2 限定自動裝配的bean 80

3.4 bean的作用域 84

3.4.1 使用會話和請求作用域 86

3.4.2 在XML中聲明作用域代理 88

3.5 運行時值注入 88

3.5.1 注入外部的值 89

3.5.2 使用Spring表達式語言進行裝配 93

3.6 小結(jié) 99

第4章 面向切面的Spring 101

4.1 什么是面向切面編程? 102

4.1.1 定義AOP術(shù)語 103

4.1.2 Spring對AOP的支持 105

4.2 通過切點來選擇連接點 107

4.2.1 編寫切點 108

4.2.2 在切點中選擇bean 109

4.3 使用注解創(chuàng)建切面 109

4.3.1 定義切面 110

4.3.2 創(chuàng)建環(huán)繞通知 114

4.3.3 處理通知中的參數(shù) 115

4.3.4 通過注解引入新功能 118

4.4 在XML中聲明切面 120

4.4.1 聲明前置和后置通知 122

4.4.2 聲明環(huán)繞通知 124

4.4.3 為通知傳遞參數(shù) 125

4.4.4 通過切面引入新的功能 127

4.5 注入AspectJ切面 128

4.5 小結(jié) 131

第2部分 Web中的Spring

第5章 構(gòu)建Spring Web應(yīng)用程序 135

5.1 Spring MVC起步 136

5.1.1 跟蹤Spring MVC的請求 136

5.1.2 搭建Spring MVC 138

5.1.3 Spittr應(yīng)用簡介 142

5.2 編寫基本的控制器 143

5.2.1 測試控制器 145

5.2.2 定義類級別的請求處理 146

5.2.3 傳遞模型數(shù)據(jù)到視圖中 147

5.3 接受請求的輸入 153

5.3.1 處理查詢參數(shù) 153

5.3.2 通過路徑參數(shù)接受輸入 155

5.4 處理表單 157

5.4.1 編寫處理表單的控制器 160

5.4.2 校驗表單 163

5.5 小結(jié) 166

第6章 渲染W(wǎng)eb視圖 167

6.1 理解視圖解析 167

6.2 創(chuàng)建JSP視圖 170

6.2.1 配置適用于JSP的視圖解析器 170

6.2.2 使用Spring的JSP庫 172

6.3 使用Apache Tiles視圖定義布局 184

6.3.1 配置Tiles視圖解析器 185

6.4 使用Thymeleaf 190

6.4.1 配置Thymeleaf視圖解析器 190

6.4.2 定義Thymeleaf模板 192

6.5 小結(jié) 196

第7章 Spring MVC的高級技術(shù) 197

7.1 Spring MVC配置的替代方案 198

7.1.1 自定義DispatcherServlet配置 198

7.1.2 添加其他的Servlet和Filter 199

7.1.3 在web.xml中聲明DispatcherServlet 201

7.2 處理multipart形式的數(shù)據(jù) 204

7.2.1 配置multipart解析器 205

7.2.2 處理multipart請求 208

7.3 處理異?!?12

7.3.1 將異常映射為HTTP狀態(tài)碼 213

7.3.2 編寫異常處理的方法 214

7.4 為控制器添加通知 216

7.5 跨重定向請求傳遞數(shù)據(jù) 217

7.5.1 通過URL模板進行重定向 218

7.5.2 使用flash屬性 219

7.6 小結(jié) 221

第8章 使用Spring WebFlow 223

8.1 在Spring中配置Web Flow 224

8.1.1 裝配流程執(zhí)行器 224

8.1.2 配置流程注冊表 224

8.1.3 處理流程請求 225

8.2 流程的組件 226

8.2.1 狀態(tài) 226

8.2.2 轉(zhuǎn)移 230

8.2.3 流程數(shù)據(jù) 231

8.3 組合起來:披薩流程 232

8.3.1 定義基本流程 233

8.3.2 收集顧客信息 236

8.3.2 構(gòu)建訂單 242

8.3.2 支付 244

8.4 保護Web流程 246

8.5 小結(jié) 246

第9章 保護Web應(yīng)用 249

9.1 Spring Security簡介 250

9.1.1 理解Spring Security的模塊 250

9.1.2 過濾Web請求 251

9.1.3 編寫簡單的安全性配置 252

9.2 選擇查詢用戶詳細信息的服務(wù) 255

9.2.1使用基于內(nèi)存的用戶存儲 255

9.2.2 基于數(shù)據(jù)庫表進行認證 257

9.2.3 基于LDAP進行認證 259

9.2.4 配置自定義的用戶服務(wù) 263

9.3 攔截請求 265

9.3.1 使用Spring表達式進行安全保護 267

9.3.2 強制通道的安全性 269

9.3.3 防止跨站請求偽造 270

9.4 認證用戶 271

9.4.1 添加自定義的登錄頁 272

9.4.2 啟用HTTP Basic認證 274

9.4.3 啟用Remember-me功能 274

9.4.4 退出 275

9.5 保護視圖 276

9.5.1 使用Spring Security的JSP標簽庫 276

9.5.2 使用Thymeleaf的SpringSecurity方言 280

9.6 小結(jié) 281

第3部分 后端中的Spring

第10章 通過Spring和JDBC征服數(shù)據(jù)庫 285

10.1 Spring的數(shù)據(jù)訪問哲學(xué) 286

10.1.1 了解Spring的數(shù)據(jù)訪問異常體系 287

10.1.2 數(shù)據(jù)訪問模板化 289

10.2 配置數(shù)據(jù)源 291

10.2.1 使用JNDI數(shù)據(jù)源 292

10.2.2 使用數(shù)據(jù)源連接池 292

10.2.3 基于JDBC驅(qū)動的數(shù)據(jù)源 294

10.2.4 使用嵌入式的數(shù)據(jù)源 295

10.2.5 使用profile選擇數(shù)據(jù)源 296

10.3 在Spring中使用

JDBC 298

10.3.1 應(yīng)對失控的JDBC代碼 299

10.3.2 使用JDBC模板 302

10.4 小結(jié) 307

第11章 使用對象-關(guān)系映射持久化數(shù)據(jù) 309

11.1 在Spring中集成Hibernate 310

11.1.1 聲明Hibernate的Session工廠 311

11.1.2 構(gòu)建不依賴于Spring的Hibernate代碼 313

11.2 Spring與Java持久化API 315

11.2.1 配置實體管理器工廠 315

11.2.2 編寫基于JPA的Repository 320

11.3 借助Spring Data實現(xiàn)自動化的JPA Repository 322

11.3.1 定義查詢方法 325

11.3.2 聲明自定義查詢 328

11.3.3 混合自定義的功能 329

11.4 小結(jié) 330

第12章 使用NoSQL數(shù)據(jù)庫 333

12.1 使用MongoDB持久化文檔數(shù)據(jù) 334

12.1.1 啟用MongoDB 335

12.1.2 為模型添加注解,實現(xiàn)MongoDB持久化 338

12.1.3 使用MongoTemplate訪問MongoDB 341

12.1.4 編寫MongoDBRepository 342

12.2 使用Neo4j操作圖數(shù)據(jù) 347

12.2.1 配置Spring DataNeo4j 347

12.2.2 使用注解標注圖實體 350

12.2.3 使用Neo4jTemplate 353

12.2.4 創(chuàng)建自動化的Neo4j Repository 354

12.3 使用Redis操作key-value數(shù)據(jù) 359

12.3.1 連接到Redis 359

12.3.2 使用RedisTemplate 360

12.3.3 使用key和value的序列化器 364

12.4 小結(jié) 365

第13章 緩存數(shù)據(jù) 367

13.1 啟用對緩存的支持 368

13.1.1 配置緩存管理器 369

13.2 為方法添加注解以支持緩存 373

13.2.1 填充緩存 374

13.2.2 移除緩存條目 378

13.3 使用XML聲明緩存 379

13.4 小結(jié) 383

第14章 保護方法應(yīng)用 385

14.1 使用注解保護方法 386

14.1.1 使用@Secured注解限制方法調(diào)用 386

14.1.2 在Spring Security中使用

JSR-250的@RolesAllowed注解 387

14.2 使用表達式實現(xiàn)方法級別的安全性 388

14.2.1 表述方法訪問規(guī)則 389

14.2.2 過濾方法的輸入和輸出 391

14.3 小結(jié) 395

第4部分 Spring集成

第15章 使用遠程服務(wù) 399

15.1 Spring遠程調(diào)用概覽 400

15.2 使用RMI 402

15.2.1 導(dǎo)出RMI服務(wù) 403

15.2.2 裝配RMI服務(wù) 405

15.3 使用Hessian和Burlap發(fā)布遠程服務(wù) 407

15.3.1 使用Hessian和Burlap導(dǎo)出bean的功能 408

15.3.2 訪問Hessian/Burlap服務(wù) 411

15.4 使用Spring的HttpInvoker 413

15.4.1 將bean導(dǎo)出為HTTP服務(wù) 413

15.4.2 通過HTTP訪問服務(wù) 414

15.5 發(fā)布和使用Web服務(wù) 416

15.5.1 創(chuàng)建基于Spring的JAX-WS端點 416

15.5.2 在客戶端代理JAX-WS服務(wù) 419

15.6 小結(jié) 421

第16章 使用Spring MVC創(chuàng)建REST API 423

16.1 了解REST 424

16.1.1 REST的基礎(chǔ)知識 424

16.1.2 Spring是如何支持REST的 425

16.2 創(chuàng)建第一個REST端點 426

16.2.1 協(xié)商資源表述 428

16.2.2 使用HTTP信息轉(zhuǎn)換器 433

16.3 提供資源之外的其他內(nèi)容 438

16.3.1 發(fā)送錯誤信息到客戶端 438

16.3.2 在響應(yīng)中設(shè)置頭部信息 443

16.4 編寫REST客戶端 445

16.4.1 了解RestTemplate的操作 446

16.4.2 GET資源 447

16.4.3 檢索資源 448

16.4.4 抽取響應(yīng)的元數(shù)據(jù) 449

16.4.5 PUT資源 450

16.4.6 DELETE資源 451

16.4.7 POST資源數(shù)據(jù) 452

16.4.8 在POST請求中獲取響應(yīng)對象 452

16.4.9 在POST請求后獲取資源位置 453

16.4.10 交換資源 454

16.5 小結(jié) 456

第17章 Spring消息 457

17.1 異步消息簡介 458

17.1.1 發(fā)送消息 459

17.1.2 評估異步消息的優(yōu)點 461

17.2 使用JMS發(fā)送消息 463

17.2.1 在Spring中搭建消息代理 463

17.2.2 使用Spring的JMS模板 465

17.2.3 創(chuàng)建消息驅(qū)動的POJO 474

17.2.4 使用基于消息的RPC 477

17.3 使用AMQP實現(xiàn)消息功能 479

17.3.1 AMQP簡介 480

17.3.2 配置Spring支持AMQP消息 481

17.3.3 使用RabbitTemplate發(fā)送消息 484

17.3.4 接收AMQP消息 486

17.4 小結(jié) 489

第18章 使用WebSocket和STOMP實現(xiàn)消息功能 491

18.1 使用Spring的低層級WebSocket API 492

18.2 應(yīng)對不支持WebSocket的場景 497

18.3 使用STOMP消息 500

18.3.1 啟用STOMP消息功能 501

18.3.2 處理來自客戶端的STOMP消息 504

18.3.3 發(fā)送消息到客戶端 507

18.4 為目標用戶發(fā)送消息 511

18.4.1 在控制器中處理用戶的消息 512

18.4.2 為指定用戶發(fā)送消息 514

18.5 處理消息異?!?15

18.6 小結(jié) 516

第19章 使用Spring發(fā)送Email 517

19.1 配置Spring發(fā)送郵件 518

19.1.1 配置郵件發(fā)送器 518

19.1.2 裝配和使用郵件發(fā)送器 520

19.2 構(gòu)建豐富內(nèi)容的Email消息 521

19.2.1 添加附件 521

19.2.2 發(fā)送富文本內(nèi)容的Email 522

19.3 使用模板生成Email 524

19.3.1 使用Velocity構(gòu)建Email消息 524

19.3.2 使用Thymeleaf構(gòu)建Email消息 526

19.4 小結(jié) 528

第20章 使用JMX管理Spring Bean 529

20.1 將Spring bean導(dǎo)出為MBean 530

20.1.1 通過名稱暴露方法 533

20.1.2 使用接口定義MBean的操作和屬性 535

20.1.3 使用注解驅(qū)動的MBean 536

20.1.4 處理MBean沖突 538

20.2 遠程MBean 539

20.2.1 暴露遠程MBean 539

20.2.2 訪問遠程MBean 540

20.2.3 代理MBean 542

20.3 處理通知 543

20.3.1 監(jiān)聽通知 544

20.4 小結(jié) 545

第21章 借助Spring Boot簡化Spring開發(fā) 547

21.1 Spring Boot簡介 548

21.1.1 添加Starter依賴 548

21.1.2 自動配置 552

21.1.3 Spring Boot CLI 552

21.1.4 Actuator 553

21.2 使用Spring Boot構(gòu)建應(yīng)用 553

21.2.1 處理請求 556

21.2.2 創(chuàng)建視圖 558

21.2.3 添加靜態(tài)內(nèi)容 560

21.2.4 持久化數(shù)據(jù) 561

21.2.5 嘗試運行 563

21.3 組合使用Groovy與SpringBoot CLI 566

21.3.1 編寫Groovy控制器 566

21.3.2 使用Groovy Repository實現(xiàn)數(shù)據(jù)持久化 569

21.3.3 運行Spring Boot CLI 570

21.4 通過Actuator獲取了解應(yīng)用內(nèi)部狀況 571

21.5 小結(jié) 574

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 觀其大綱 第一部分 基本管理技術(shù) 1第1章 從何處入手 2第2章 腳本和shell 24第3章 引導(dǎo)和關(guān)機 62第...
    周少言閱讀 1,963評論 1 2
  • 25個經(jīng)典的Spring面試問答 本人收集了一些在大家在面試時被經(jīng)常問及的關(guān)于Spring的主要問題,這些問題有可...
    殺小賊閱讀 779評論 0 2
  • 因為頭發(fā)挺長的,其實也不是很長,只不過習(xí)慣了比較短的頭發(fā),特別是夏天,天氣熱。 幾天前都想剪了,只是每次出去的時候...
    藍銳南閱讀 598評論 0 0
  • 《活著》是著名作家余華的作品之一。講述了一個人從大起大落到以牛作伴的悲慘人生。福貴本事當(dāng)?shù)氐母患疑贍?,從小桀驁不馴...
    Kiqe一枝獨秀閱讀 150評論 0 0
  • 果實都沉甸甸的在風(fēng)中搖曳,也有許多花朵不舍離開的仍在綻放,,,微風(fēng)帶來的是縷縷清涼,給我的也是滿懷希望,,,,...
    gdz1023閱讀 327評論 0 0

友情鏈接更多精彩內(nèi)容