Spring 5 攻略
內容描述
Spring是一個開源的輕量級Java開發框架,主要用於解決企業應用開發的復雜性,簡化應用程序的開發。
本書以“菜譜”的方式,介紹了Spring開發期間會遇到的各種需求、問題以及相應的解決方案。本書分為17章,主要內容有Spring開發工具的簡單介紹;Spring是什麽、如何配置、如何使用;如何使用Spring Web MVC框架進行基於Web的開發;Spring對Restful Web Service的支持;Spring MVC的異步處理;使用Spring Social集成社交網絡;使用Spring Security保護應用;使用Spring Mobile在應用中集成移動設備檢測和使用功能;如何使用Spring訪問數據;Spring事務管理;使用Spring Batch框架對大型機領域的解決方案進行建模;Spring與NoSQL和Hadoop的混合使用;Spring Java企業服務與遠程技術;Spring消息機制;使用Spring Integration框架集成不同的服務與數據;Spring Framework的單元測試;Grails框架的簡單介紹。
《Spring 5攻略》適合對Java開發和企業應用集成有一定瞭解,希望在實際開發中掌握一種全面、快速、可伸縮、可移植的工具平臺的開發人員閱讀。
目錄大綱
第1章Spring開發工具1
1-1使用Spring Tool Suite構建Spring應用1
1-2使用IntelliJ IDE構建Spring應用5
1-3使用Maven命令行界面構建Spring應用8
1-4使用Maven wrapper構建Spring應用9
1-5使用Gradle命令行界面構建Spring應用10
1-6使用Gradle wrapper構建Spring應用11
小結11
第2章Spring核心任務12
2-1使用Java config來配置POJO 12
2-2通過調用構造方法創建POJO 17
2-3使用POJO引用與自動裝配和其他POJO進行交互19
2-4使用@Resource與@Inject註解自動裝配POJO 24
2-5使用@Scope註解設置POJO的作用域26
2-6使用來自於外部資源(文本文件、XML文件、屬性文件或圖像文件)的數據28
2-7針對不同地域的屬性文件解析i18n文本信息31
2-8使用註解自定義POJO初始化與銷毀動作33
2-9創建後置處理器來驗證和修改POJO 36
2-10使用工廠(靜態工廠、實例方法與Spring的FactoryBean)創建POJO 39
2-11使用Spring環境與profile加載不同的POJO 42
2-12讓POJO能夠感知到Spring的IoC容器資源44
2-13使用註解實現面向切面編程45
2-14訪問連接點信息52
2-15通過@ Order註解指定切面的順序52
2-16重用切面的切點定義54
2-17編寫AspectJ切點表達式55
2-18使用AOP為POJO添加引介58
2-19使用AOP為POJO引入狀態60
2-20在Spring中使用加載期編織的AspectJ切面62
2-21在Spring中配置AspectJ切面65
2-22使用AOP將POJO注入到領域對像中66
2-23使用Spring與TaskExecutor實現並發68
2-24在POJO間實現應用事件通信73
小結75
第3章Spring MVC 77
3-1使用Spring MVC開發一個簡單的Web應用77
3-2使用@RequestMapping映射請求86
3-3使用處理器攔截器攔截請求89
3-4解析用戶地域92
3-5外部化地域相關的文本信息94
3-6根據名字解析視圖95
3-7使用視圖與內容協商97
3-8將異常映射到視圖99
3-9使用控制器處理表單101
3-10使用嚮導表單控制器處理多頁面表單111
3-11使用註解進行bean驗證(JSR-303) 120
3-12創建Excel與PDF視圖121
小結126
第4章Spring REST 127
4-1使用REST服務發布XML 127
4-2使用REST服務發布JSON 133
4-3使用Spring訪問REST服務137
4-4發布RSS與Atom源139
小結146
第5章Spring MVC:異步處理147
5-1使用控制器與TaskExecutor異步處理請求147
5-2使用響應寫入器153
5-3使用異步攔截器156
5-4使用WebSocket 158
5-5使用Spring WebFlux開發反應式應用164
5-6使用反應式控制器處理表單172
5-7使用反應式REST服務發布和消費JSON 182
5-8使用異步Web客戶端183
5-9編寫反應式處理器函數186
小結188
第6章Spring Social 189
6-1搭建Spring Social 189
6-2連接到Twitter 190
6-3連接到Facebook 193
6-4展示服務提供者的連接狀態195
6-5使用Twitter API 199
6-6使用持久化的UsersConnectionRepository 200
6-7集成Spring Social與Spring Security 201
小結208
第7章Spring Security 209
7-1保護URL訪問209
7-2登錄到Web應用213
7-3對用戶進行認證217
7-4做出訪問控制決策224
7-5保護方法調用229
7- 6處理視圖安全232
7-7處理領域對象的安全233
7-8向WebFlux應用中添加安全239
小結242
第8章Spring Mobile 243
8-1不使用Spring Mobile來檢測設備243
8-2使用Spring Mobile來檢測設備246
8-3使用站點首選項247
8-4使用設備信息來渲染視圖249
8-5實現站點切換252
小結253
第9章數據訪問254
9-1使用JDBC模板來更新數據庫259
9-2使用JDBC模板查詢數據庫263
9-3簡化JDBC模板的創建267
9-4在JDBC模板中使用具名參數269
9-5在Spring JDBC框架中處理異常271
9-6直接使用ORM框架來避免問題274
9-7在Spring中配置ORM資源工廠282
9-8使用Hibernate的上下文會話持久化對象287
9-9使用JPA的上下文注入來持久化對象289
9-10使用Spring Data JPA簡化JPA操作292
小結293
第10章Spring事務管理294
10-1使用事務管理來避免問題294
10-2選擇一種事務管理器實現299
10-3使用事務管理器API以編程的方式管理事務300
10-4使用事務模板以編程的方式管理事務302
10-5使用@Transactional註解以聲明的方式管理事務304
10-6設置傳播事務屬性305
10-7設置隔離事務屬性308
10-8設置回滾事務屬性314
10-9設置超時與只讀事務屬性314
10-10使用加載期編織來管理事務315
小結315
第11章Spring Batch 316
11-1搭建Spring Batch基礎設施317
11-2讀寫數據321
11-3編寫自定義ItemWriter與ItemReader 326
11-4在寫入前處理輸入328
11-5通過事務增強健壯性330
11-6重試331
11-7控制步驟的執行333
11-8啟動任務337
11-9參數化任務340
小結341
第12章Spring與NoSQL 342
12-1使用MongoDB 342
12-2使用Redis 352
12-3使用Neo4j 357
12 -4使用Couchbase 370
小結382
第13章Spring Java企業服務與遠程技術383
13-1將Spring POJO註冊為JMX MBean 383
13-2發布並監聽JMX通知393
13-3在Spring中訪問遠程JMX MBean 395
13 -4使用Spring的郵件支持來發送郵件398
13-5借助Spring的Quartz支持來調度任務404
13-6使用Spring的調度支持來調度任務408
13-7通過RMI公開和調用服務410
13-8通過HTTP公開和調用服務413
13-9使用JAX-WS公開和調用SOAP Web Service 415
13-10使用契約優先的SOAP Web Service 420
13-11使用Spring-WS公開和調用SOAP Web Service 423
13-12使用Spring-WS與XML編組來開發SOAP Web Service 429
小結433
第14章Spring消息機制434
14-1使用Spring發送和接收JMS消息434
14-2轉換JMS消息443
14-3管理JMS事務445
14-4在Spring中創建消息驅動的POJO 446
14-5緩存與池化JMS連接451
14-6使用Spring發送和接收AMQP消息452
14-7使用Spring Kafka發送和接收消息457
小結463
第15章Spring Integration 464
15-1使用EAI進行系統集成464
15-2使用JMS集成兩個系統466
15-3查詢Spring Integration消息以獲取上下文信息469
15-4使用文件系統來集成兩個系統471
15-5將消息由一種類型轉換為另一種類型473
15-6使用Spring Integration進行錯誤處理476
15-7派生集成控制:分割器與聚合器478
15-8使用路由器實現條件路由481
15-9使用Spring Batch發起事件481
15-10使用網關484
小結489
第16章Spring測試490
16-1使用JUnit與TestNG創建測試490
16-2創建單元測試與集成測試494
16-3為Spring MVC控制器實現單元測試501
16-4在集成測試中管理應用上下文502
16-5向集成測試注入測試構件506
16- 6在集成測試中管理事務507
16-7在集成測試中訪問數據庫511
16-8使用Spring常見的測試註解513
16-9為Spring MVC控制器實現集成測試513
16-10為REST客戶端編寫集成測試516
小結519
第17章Grails 520
17-1獲取並安裝Grails 520
17-2創建Grails應用521
17-3獲取Grails插件523
17-4 Grails環境中的開發、生產與測試524
17-5創建應用的領域類525
17-6為應用的領域類生成CRUD控制器與視圖527
17-7為消息屬性實現國際化(I18n) 529
17-8變更持久化存儲系統531
17-9定制日誌輸出533
17-10運行單元與集成測試535
17-11使用自定義佈局與模板539
17- 12使用GORM查詢542
17-13創建自定義標籤543
17-14添加安全544
小結547
作者介紹
Marten Deinum是開源Spring Framework項目的提交者,也是Conspect公司的Java/軟件諮詢師,為各種小型和大型公司開發並架構軟件(主要基於Java)。
他是一位熱忱的開源用戶,並且是Spring Framework的長期粉絲、用戶與擁護者。
他擁有多個角色,包括軟件工程師、開發負責人和Java與Spring培訓師。
Daniel Rubio擁有10年以上的企業與Web軟件經驗,目前是MashupSoft網站的創始人與技術負責人。
他已經為Apress編寫了多本著作。
Daniel的經驗主要集中在Java、Spring、Python、Django、JavaScript/CSS和HTML上。
Josh Long是一名Spring開發大使,目前就職於Pivotal。
Josh是一位Java擁躉,5本圖書的作者(包括O'Reilly即將出版的Cloud Native Java),也是3個銷售**的培訓視頻的作者(包括與Phil Webb合作的Building Microservices with Spring Boot) ,同時還是一位開源貢獻者(Spring Boot、Spring Integration、Spring Cloud、Activiti和Vaadin)。