第1部分 Spring的核心
第1章 Spring之旅 3
1.1 簡化Java開發 4
1.1.1 激發POJO的潛能 5
1.1.2 依賴注入 5
1.1.3 應用切麵 11
1.1.4 使用模闆消除樣闆式代碼 16
1.2 容納你的Bean 18
1.2.1 使用應用上下文 19
1.2.2 bean的生命周期 20
1.3 俯瞰Spring風景綫 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 小結 30
第2章 裝配Bean 33
2.1 Spring配置的可選方案 34
2.2 自動化裝配bean 35
2.2.1 創建可被發現的bean 35
2.2.2 為組件掃描的bean命名 38
2.2.3 設置組件掃描的基礎包 39
2.2.4 通過為bean添加注解實現自動裝配 40
2.2.5 驗證自動裝配 42
2.3 通過Java代碼裝配
bean 44
2.3.1 創建配置類 44
2.3.2 聲明簡單的bean 45
2.3.3 藉助JavaConfig實現注入 46
2.4 通過XML裝配bean 48
2.4.1 創建XML配置規範 48
2.4.2 聲明一個簡單的
49
2.4.3 藉助構造器注入初始化bean 50
2.4.4 設置屬性 56
2.5 導入和混閤配置 61
2.5.1 在JavaConfig中引用XML配置 61
2.5.2 在XML配置中引用JavaConfig 63
2.6 小結 65
第3章 高級裝配 67
3.1 環境與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 小結 99
第4章 麵嚮切麵的Spring 101
4.1 什麼是麵嚮切麵編程? 102
4.1.1 定義AOP術語 103
4.1.2 Spring對AOP的支持 105
4.2 通過切點來選擇連接點 107
4.2.1 編寫切點 108
4.2.2 在切點中選擇bean 109
4.3 使用注解創建切麵 109
4.3.1 定義切麵 110
4.3.2 創建環繞通知 114
4.3.3 處理通知中的參數 115
4.3.4 通過注解引入新功能 118
4.4 在XML中聲明切麵 120
4.4.1 聲明前置和後置通知 122
4.4.2 聲明環繞通知 124
4.4.3 為通知傳遞參數 125
4.4.4 通過切麵引入新的功能 127
4.5 注入AspectJ切麵 128
4.5 小結 131
第2部分 Web中的Spring
第5章 構建Spring Web應用程序 135
5.1 Spring MVC起步 136
5.1.1 跟蹤Spring MVC的請求 136
5.1.2 搭建Spring MVC 138
5.1.3 Spittr應用簡介 142
5.2 編寫基本的控製器 143
5.2.1 測試控製器 145
5.2.2 定義類級彆的請求處理 146
5.2.3 傳遞模型數據到視圖中 147
5.3 接受請求的輸入 153
5.3.1 處理查詢參數 153
5.3.2 通過路徑參數接受輸入 155
5.4 處理錶單 157
5.4.1 編寫處理錶單的控製器 160
5.4.2 校驗錶單 163
5.5 小結 166
第6章 渲染Web視圖 167
6.1 理解視圖解析 167
6.2 創建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 小結 196
第7章 Spring MVC的高級技術 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形式的數據 204
7.2.1 配置multipart解析器 205
7.2.2 處理multipart請求 208
7.3 處理異常 212
7.3.1 將異常映射為HTTP狀態碼 213
7.3.2 編寫異常處理的方法 214
7.4 為控製器添加通知 216
7.5 跨重定嚮請求傳遞數據 217
7.5.1 通過URL模闆進行重定嚮 218
7.5.2 使用flash屬性 219
7.6 小結 221
第8章 使用Spring WebFlow 223
8.1 在Spring中配置Web Flow 224
8.1.1 裝配流程執行器 224
8.1.2 配置流程注冊錶 224
8.1.3 處理流程請求 225
8.2 流程的組件 226
8.2.1 狀態 226
8.2.2 轉移 230
8.2.3 流程數據 231
8.3 組閤起來:披薩流程 232
8.3.1 定義基本流程 233
8.3.2 收集顧客信息 236
8.3.2 構建訂單 242
8.3.2 支付 244
8.4 保護Web流程 246
8.5 小結 246
第9章 保護Web應用 249
9.1 Spring Security簡介 250
9.1.1 理解Spring Security的模塊 250
9.1.2 過濾Web請求 251
9.1.3 編寫簡單的安全性配置 252
9.2 選擇查詢用戶詳細信息的服務 255
9.2.1使用基於內存的用戶存儲 255
9.2.2 基於數據庫錶進行認證 257
9.2.3 基於LDAP進行認證 259
9.2.4 配置自定義的用戶服務 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 小結 281
第3部分 後端中的Spring
第10章 通過Spring和JDBC徵服數據庫 285
10.1 Spring的數據訪問哲學 286
10.1.1 瞭解Spring的數據訪問異常體係 287
10.1.2 數據訪問模闆化 289
10.2 配置數據源 291
10.2.1 使用JNDI數據源 292
10.2.2 使用數據源連接池 292
10.2.3 基於JDBC驅動的數據源 294
10.2.4 使用嵌入式的數據源 295
10.2.5 使用profile選擇數據源 296
10.3 在Spring中使用
JDBC 298
10.3.1 應對失控的JDBC代碼 299
10.3.2 使用JDBC模闆 302
10.4 小結 307
第11章 使用對象-關係映射持久化數據 309
11.1 在Spring中集成Hibernate 310
11.1.1 聲明Hibernate的Session工廠 311
11.1.2 構建不依賴於Spring的Hibernate代碼 313
11.2 Spring與Java持久化API 315
11.2.1 配置實體管理器工廠 315
11.2.2 編寫基於JPA的Repository 320
11.3 藉助Spring Data實現自動化的JPA Repository 322
11.3.1 定義查詢方法 325
11.3.2 聲明自定義查詢 328
11.3.3 混閤自定義的功能 329
11.4 小結 330
第12章 使用NoSQL數據庫 333
12.1 使用MongoDB持久化文檔數據 334
12.1.1 啓用MongoDB 335
12.1.2 為模型添加注解,實現MongoDB持久化 338
12.1.3 使用MongoTemplate訪問MongoDB 341
12.1.4 編寫MongoDBRepository 342
12.2 使用Neo4j操作圖數據 347
12.2.1 配置Spring DataNeo4j 347
12.2.2 使用注解標注圖實體 350
12.2.3 使用Neo4jTemplate 353
12.2.4 創建自動化的Neo4j Repository 354
12.3 使用Redis操作key-value數據 359
12.3.1 連接到Redis 359
12.3.2 使用RedisTemplate 360
12.3.3 使用key和value的序列化器 364
12.4 小結 365
第13章 緩存數據 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 小結 383
第14章 保護方法應用 385
14.1 使用注解保護方法 386
14.1.1 使用@Secured注解限製方法調用 386
14.1.2 在Spring Security中使用
JSR-250的@RolesAllowed注解 387
14.2 使用錶達式實現方法級彆的安全性 388
14.2.1 錶述方法訪問規則 389
14.2.2 過濾方法的輸入和輸齣 391
14.3 小結 395
第4部分 Spring集成
第15章 使用遠程服務 399
15.1 Spring遠程調用概覽 400
15.2 使用RMI 402
15.2.1 導齣RMI服務 403
15.2.2 裝配RMI服務 405
15.3 使用Hessian和Burlap發布遠程服務 407
15.3.1 使用Hessian和Burlap導齣bean的功能 408
15.3.2 訪問Hessian/Burlap服務 411
15.4 使用Spring的HttpInvoker 413
15.4.1 將bean導齣為HTTP服務 413
15.4.2 通過HTTP訪問服務 414
15.5 發布和使用Web服務 416
15.5.1 創建基於Spring的JAX-WS端點 416
15.5.2 在客戶端代理JAX-WS服務 419
15.6 小結 421
第16章 使用Spring MVC創建REST API 423
16.1 瞭解REST 424
16.1.1 REST的基礎知識 424
16.1.2 Spring是如何支持REST的 425
16.2 創建第一個REST端點 426
16.2.1 協商資源錶述 428
16.2.2 使用HTTP信息轉換器 433
16.3 提供資源之外的其他內容 438
16.3.1 發送錯誤信息到客戶端 438
16.3.2 在響應中設置頭部信息 443
16.4 編寫REST客戶端 445
16.4.1 瞭解RestTemplate的操作 446
16.4.2 GET資源 447
16.4.3 檢索資源 448
16.4.4 抽取響應的元數據 449
16.4.5 PUT資源 450
16.4.6 DELETE資源 451
16.4.7 POST資源數據 452
16.4.8 在POST請求中獲取響應對象 452
16.4.9 在POST請求後獲取資源位置 453
16.4.10 交換資源 454
16.5 小結 456
第17章 Spring消息 457
17.1 異步消息簡介 458
17.1.1 發送消息 459
17.1.2 評估異步消息的優點 461
17.2 使用JMS發送消息 463
17.2.1 在Spring中搭建消息代理 463
17.2.2 使用Spring的JMS模闆 465
17.2.3 創建消息驅動的POJO 474
17.2.4 使用基於消息的RPC 477
17.3 使用AMQP實現消息功能 479
17.3.1 AMQP簡介 480
17.3.2 配置Spring支持AMQP消息 481
17.3.3 使用RabbitTemplate發送消息 484
17.3.4 接收AMQP消息 486
17.4 小結 489
第18章 使用WebSocket和STOMP實現消息功能 491
18.1 使用Spring的低層級WebSocket API 492
18.2 應對不支持WebSocket的場景 497
18.3 使用STOMP消息 500
18.3.1 啓用STOMP消息功能 501
18.3.2 處理來自客戶端的STOMP消息 504
18.3.3 發送消息到客戶端 507
18.4 為目標用戶發送消息 511
18.4.1 在控製器中處理用戶的消息 512
18.4.2 為指定用戶發送消息 514
18.5 處理消息異常 515
18.6 小結 516
第19章 使用Spring發送Email 517
19.1 配置Spring發送郵件 518
19.1.1 配置郵件發送器 518
19.1.2 裝配和使用郵件發送器 520
19.2 構建豐富內容的Email消息 521
19.2.1 添加附件 521
19.2.2 發送富文本內容的Email 522
19.3 使用模闆生成Email 524
19.3.1 使用Velocity構建Email消息 524
19.3.2 使用Thymeleaf構建Email消息 526
19.4 小結 528
第20章 使用JMX管理Spring Bean 529
20.1 將Spring bean導齣為MBean 530
20.1.1 通過名稱暴露方法 533
20.1.2 使用接口定義MBean的操作和屬性 535
20.1.3 使用注解驅動的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 監聽通知 544
20.4 小結 545
第21章 藉助Spring Boot簡化Spring開發 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構建應用 553
21.2.1 處理請求 556
21.2.2 創建視圖 558
21.2.3 添加靜態內容 560
21.2.4 持久化數據 561
21.2.5 嘗試運行 563
21.3 組閤使用Groovy與SpringBoot CLI 566
21.3.1 編寫Groovy控製器 566
21.3.2 使用Groovy Repository實現數據持久化 569
21.3.3 運行Spring Boot CLI 570
21.4 通過Actuator獲取瞭解應用內部狀況 571
21.5 小結 574
這本書真的讓我大開眼界,原以為Spring隻是一個簡單的框架,沒想到它背後蘊藏著如此深邃的哲學和強大的能力。我尤其喜歡它對“依賴注入”的深入剖析,之前我一直認為這隻是一個“把對象傳進去”的操作,但通過這本書,我纔理解到依賴注入不僅僅是代碼的解耦,更是對軟件設計思想的一次升華。它讓我想到瞭“低耦閤、高內聚”的經典設計原則,而Spring的DI就是將這些原則以一種極其優雅和高效的方式實現瞭齣來。書中對各種Bean的生命周期、作用域、以及如何通過配置來管理這些Bean的細節描述,簡直就是一場思維的盛宴。我開始反思自己以往的代碼編寫方式,那些硬編碼的依賴、難以測試的單元,在DI的理念下,似乎都變得可以迎刃而解。更重要的是,它不僅僅停留在理論層麵,書中大量的代碼示例和實際應用場景的講解,讓我在學習過程中能夠立刻感受到Spring的強大,並且能夠將這些知識融會貫通到自己的項目中去。我發現,掌握瞭DI,就如同掌握瞭Spring的靈魂,之後的學習也變得更加順暢和有方嚮感。
評分這本書對我而言,更像是一本“武林秘籍”,它揭示瞭Spring在安全方麵的強大力量。我之前一直對Spring Security的配置感到頭疼,覺得它復雜的權限控製、認證授權機製讓人無從下手。但是,通過閱讀這本書,我纔真正領略到Spring Security是如何通過過濾器鏈、Provider、UserDetails服務等組件,構建起一個滴水不漏的安全防綫。書中對不同認證方式(如錶單登錄、Basic認證、OAuth2)的講解,讓我能夠根據不同的業務場景選擇最閤適的安全策略。尤其讓我印象深刻的是,它還深入講解瞭如何自定義安全邏輯,如何集成第三方認證服務,這些高級內容讓我覺得自己的安全掌控力大大提升。我嘗試在自己的項目中應用書中講解的CSRF防護、XSS攻擊防範等技術,效果顯著,大大增強瞭我的信心。這本書讓我明白,安全並非可有可無的附加項,而是整個應用開發的基石,而Spring Security正是提供瞭構建堅實基石的有力工具。
評分說實話,當我翻開這本書時,我內心是有些忐忑的。畢竟Spring的名聲在外,其龐大的生態係統和豐富的特性常常讓人望而卻步。然而,這本書的內容設計卻齣乎意料地循序漸進,它並沒有一開始就拋齣大量的復雜概念,而是從最基礎的“Hello World”開始,一步步引導讀者構建起對Spring的認知。我特彆欣賞它在講解MVC(Model-View-Controller)模式時所做的類比,將復雜的Web開發流程拆解成一個個易於理解的部分,讓我這個Web開發新手也能快速把握核心。書中對Spring MVC的配置,從XML到注解,再到JavaConfig,每一種方式都講解得非常到位,而且還分析瞭各自的優缺點,這讓我能夠根據實際情況做齣更明智的選擇。我曾一度睏擾於如何處理HTTP請求、如何返迴JSON數據、如何進行錶單驗證,而這本書簡直就像一本“救世主”,它用清晰的代碼示例和詳盡的解釋,一一解答瞭我的所有疑惑。在學習過程中,我還嘗試瞭一些書中提供的練習題,雖然有些挑戰,但每次完成都能帶來巨大的成就感,也讓我對Spring MVC的理解更加深刻。
評分我必須說,這本書在數據持久化方麵的內容,是我之前從未接觸過的如此係統和深入的講解。過去,我一直依賴於JDBC模闆或者Hibernate,但總是感覺缺少瞭些什麼,對ORM(Object-Relational Mapping)的理解也停留在錶麵。這本書對Spring Data JPA的講解,簡直是打開瞭我新世界的大門。它不僅介紹瞭 JPA 的基本概念,還詳細講解瞭如何使用 Spring Data JPA 的 Repository 接口,通過簡單的聲明式方法,就能實現復雜的數據查詢和操作,這極大地簡化瞭我的代碼編寫。書中對實體映射、事務管理、數據庫連接池的配置,都提供瞭非常詳盡的指導,讓我能夠從根本上理解數據持久化的工作原理。我特彆喜歡它講解的各種查詢方式,從基本的CRUD到復雜的條件查詢,再到動態查詢,每一種都用清晰的代碼示例呈現,讓我可以立刻上手實踐。現在,我能夠更自信地處理數據庫相關的任務,並且能夠寫齣更高效、更健壯的數據訪問代碼。
評分坦白講,我一直以來對Spring的AOP(Aspect-Oriented Programming)概念都感到有些抽象,覺得它聽起來很厲害,但具體怎麼用、有什麼好處卻說不太清楚。這本書的齣現,徹底改變瞭我的看法。它用非常生動的例子,將AOP的概念拆解得淋灕盡緻。我明白瞭AOP的核心思想就是“橫切關注點”,也就是將那些重復的、與核心業務邏輯無關的代碼(如日誌記錄、事務管理、權限檢查)抽取齣來,形成“切麵”,然後在需要的地方“織入”。書中對各種通知類型(前置通知、後置通知、返迴通知、異常通知、環繞通知)的講解,讓我能夠精準地控製代碼的執行時機。我嘗試使用AOP來統一管理我的日誌輸齣,並將事務管理的邏輯也從業務方法中剝離齣來,這種解耦帶來的好處讓我感到非常驚喜。代碼變得更加簡潔、可讀性更強,而且復用性也大大提高。這本書讓我真正體會到瞭AOP的強大之處,它不僅僅是一種編程技巧,更是一種對軟件設計和工程效率的優化。
評分書很不錯,介紹spring源碼。不過需要有一定功底纔看得懂啊。
評分非常的劃算,相當於打瞭三摺。
評分書不錯,講的挺全麵的,還挺深入的。語言風格有點幽默,推薦使用。
評分學Spring拿來翻翻,挺厚的一本
評分springboot結閤spring實戰第四版更好
評分東西不錯,下次繼續購買,點贊京東,618買的,比較劃算,支持
評分看評價很不錯哦!可以的
評分書挺好,也感覺是正版的,就是有點不好的地方就是,京東的一些書總是書角被撞憋,不知道是不是快遞員亂丟亂扔的緣故
評分很基礎的一本書.很不錯
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有