注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計其他編程語言/工具Spring學習指南 第4版

Spring學習指南 第4版

Spring學習指南 第4版

定 價:¥89.00

作 者: [印度] J. 夏爾馬(J. Sharma ),阿西施·薩林(Ashish Sar
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

ISBN: 9787115519290 出版時間: 2020-01-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 460 字數(shù):  

內容簡介

  Spring 框架是以簡化J2EE 應用程序開發(fā)為特定目標而創(chuàng)建的,是當前*流行的Java 開發(fā)框架。本書主要介紹Beans 的配置、依賴注入、定制bean、基于Java 的容器、AOP、Spring Data、Spring MVC 等內容。本書基于非常適合構建JavaWeb 微服務框架的Spring 5 編寫,涵蓋Java 的函數(shù)式編程、RxJava 2 的反應式編程、用Spring WebFlux、Spring Data 和Spring Security 開發(fā)反應式RESTful Web 服務等內容。 本書適合Web 開發(fā)者和想使用Spring 的初學者參考,也可供對Web 開發(fā)和Spring 感興趣的讀者參考。

作者簡介

  J.夏爾馬(J. Sharma)是一名Java 開發(fā)者,有非常豐富的Spring 應用開發(fā)經(jīng)驗。 阿西施·薩林(Ashish Sarin)獲得Sun 認證的企業(yè)架構師,有超過18 年的應用程序架構設計經(jīng)驗,著有Spring Roo 1.1 Cookbook (由Packt 出版社出版)和Portlets in Action (由Manning 出版社出版)。

圖書目錄

第1 章 Spring 框架概述 1
1.1 簡介1
1.2 Spring 框架的模塊.....1
1.3 Spring IoC 容器....2
1.4 使用Spring 框架的好處..4
1.4.1 管理本地和全局事務的一致方法.....4
1.4.2 聲明式事務管理....6
1.4.3 安全.6
1.4.4 Java 管理擴展..7
1.4.5 Java 消息服務..8
1.4.6 緩存.8
1.5 一個簡單的Spring 應用程序9
1.5.1 確定應用程序對象及其依賴關系.....9
1.5.2 根據(jù)確定的應用程序對象
創(chuàng)建POJO 類.10
1.5.3 創(chuàng)建配置元數(shù)據(jù)..10
1.5.4 通過setter 方法注入依賴項12
1.5.5 創(chuàng)建一個Spring 容器的實例....14
1.5.6 從Spring 容器訪問bean15
1.6 Spring 框架5 的新功能.16
1.7 建立在Spring 之上的框架..16
1.8 小結....17
第2 章 Spring 框架基礎....18
2.1 簡介....18
2.2 面向接口編程的設計方法...18
提高依賴類的可測試性..19
Spring 對“面向接口編程”設計方法的
支持.....19
2.3 使用靜態(tài)和實例工廠方法創(chuàng)建Spring
bean.....21
2.3.1 通過靜態(tài)工廠方法實例bean.....21
2.3.2 通過實例工廠方法實例bean.....22
2.4 基于構造函數(shù)的DI..25
2.4.1 回顧基于setter 的DI 25
2.4.2 基于構造函數(shù)的DI...26
2.5 將配置詳細信息傳遞給bean....27
2.6 bean 的作用域29
2.6.1 singleton ...29
2.6.2 prototype...35
2.6.3 為你的bean 選擇適當?shù)姆秶?...36
2.7 小結....36
第3 章 bean 的配置.....37
3.1 簡介....37
3.2 bean 定義的繼承.37
3.2.1 MyBank—bean 定義繼承示例.....37
3.2.2 繼承了什么....39
3.3 構造函數(shù)參數(shù)匹配...43
3.3.1 使用元素傳遞
簡單的值和bean 引用....43
3.3.2 基于類型的構造方法參數(shù)匹配.44
3.3.3 基于名稱的構造函數(shù)參數(shù)匹配.47
3.4 配置不同類型的bean 屬性和構造函數(shù)
參數(shù)....50
3.4.1 Spring 的內置屬性編輯器....50
3.4.2 指定不同集合類型的值.52
3.4.3 指定數(shù)組的值57
3.4.4 與、和元素
相對應的默認實現(xiàn)....58
3.5 內置屬性編輯器.58
3.5.1 CustomCollectionEditor ..58
3.5.2 CustomMapEditor 60
3.5.3 CustomDateEditor 61
3.6 向Spring 容器注冊屬性編輯器61
3.6.1 創(chuàng)建一個PropertyEditorRegistrar
實現(xiàn).....61
3.6.2 配置CustomEditorConfigurer 類.....62
3.7 具有p 和c 命名空間的簡明bean 定義.....62
3.7.1 p 命名空間.....63
3.7.2 c 命名空間.....63
3.8 Spring 的util 模式....65
3.8.1 元素.66
3.8.2 元素.....66
3.8.3 元素.67
3.8.4 元素..68
3.8.5 元素....68
3.8.6 元素..69
3.9 FactoryBean 接口70
3.9.1 MyBank application—將事件
存儲在數(shù)據(jù)庫中..70
3.9.2 MyBank—FactoryBean 示例..71
3.9.3 訪問FactoryBean 實例...73
2 目 錄
3.10 模塊化bean 配置....75
3.11 小結..75
第4 章 依賴注入....76
4.1 簡介....76
4.2 內部bean..76
4.3 使用depends-on 特性控制bean 的初始化
順序....77
4.3.1 MyBank—bean 之間隱式的
依賴關系..78
4.3.2 隱性依賴問題78
4.4 singleton 和prototype 范圍的bean 的
依賴項82
4.4.1 singleton bean 的依賴項.82
4.4.2 Prototype bean 的依賴項84
4.5 通過singleton bean 中獲取prototype bean 的
新實例86
4.5.1 ApplicationContextAware 接口.87
4.5.2 元素..88
4.5.3 元素91
4.6 自動裝配依賴項.93
4.6.1 byType .93
4.6.2 constructor 95
4.6.3 byName96
4.6.4 default / no96
4.6.5 使bean 無法用于自動裝配..97
4.6.6 自動裝配的局限性....98
4.7 小結....98
第5 章 自定義bean 和bean 定義...99
5.1 簡介....99
5.2 自定義bean 的初始化和銷毀邏輯.99
5.2.1 使Spring 調用由destroy-method
特性指定的cleanup 方法...101
5.2.2 清理方法和prototype bean 103
5.2.3 為所有bean 指定默認的bean
初始化和銷毀方法..103
5.2.4 InitializingBean 和DisposableBean
生命周期接口....103
5.2.5 JSR 250’s @PostConstruct 和
@PreDestroy 注解..103
5.3 使用BeanPostProcessor 與新創(chuàng)建的bean 實例
進行交互.105
5.3.1 BeanPostProcessor 示例—驗證
bean 實例106
5.3.2 BeanPostProcessor 示例—解析
bean 依賴項..109
5.3.3 FactoryBeans 的BeanPostProcessor
行為...112
5.3.4 RequiredAnnotationBeanPostProcessor....113
5.3.5 DestructionAwareBeanPostProcessor114
5.4 使用BeanFactoryPostProcessor 修改
bean 定義114
5.4.1 BeanFactoryPostProcessor 示例.....115
5.4.2 PropertySourcesPlaceholderConfigurer ..118
5.4.3 PropertyOverrideConfigurer123
5.5 小結..125
第6 章 使用Spring 進行注解驅動
開發(fā)...126
6.1 簡介..126
6.2 用@Component 標識Spring bean.126
6.3 @Autowired 通過類型自動裝配依賴項128
6.4 @Qualifier 按名稱自動裝配依賴項..131
6.4.1 使用qualifiers 自動裝配bean..132
6.4.2 創(chuàng)建自定義限定符注解.....133
6.5 JSR 330 的@Inject 和@Named 注解..135
Java 8 的Optional 類型.136
6.6 JSR 250 的@Resource 注解....137
6.7 @Scope、@Lazy、@DependsOn 和
@Primary 注解..138
6.7.1 @Scope...139
6.7.2 @Lazy139
6.7.3 @DependsOn142
6.7.4 @Primary142
6.8 使用@Value 簡化注解的bean 類的配置.....142
6.8.1 在@Value 注解中使用Spring
表達式語言(SpEL) ..143
6.8.2 在方法級和方法參數(shù)級使用
@Value 注解.....145
6.8.3 在SpEL 中使用數(shù)學、關系和
邏輯運算符..145
6.8.4 使用SpEL 獲取bean 的引用...146
6.8.5 在SpEL 中使用正則表達式....146
6.8.6 在SpEL 中使用映射和列表....146
6.8.7 在基于XML 的bean 定義中指定
SpEL 表達式147
6.9 使用Spring 的Validator 接口驗證對象.148
6.10 使用JSR 380(Bean Validation 2.0)注解
指定約束....151
目 錄 3
Spring 中的JSR 380 支持152
JSR 380 有什么新功能.....157
6.11 bean 定義配置文件.....159
bean 定義配置文件示例...159
6.12 小結163
第7 章 基于Java 的容器配置164
7.1 簡介..164
7.2 使用@Configuration 和@Bean 注解配置
bean...164
在@Component 和JSR 330 的@Named 類
中定義@Bean 方法.166
7.3 注入bean 依賴項....168
7.4 配置Spring 容器....170
7.5 生命周期回調...172
7.6 導入基于Java 的配置..173
解決依賴關系....174
7.7 附加主題175
7.7.1 覆蓋@Bean 方法.....175
7.7.2 配置BeanPostProcessors 和
BeanFactoryPostProcessors.178
7.7.3 導入應用程序上下文XML 文件....178
7.7.4 有條件地包含@Bean 和
@Configuration 類...180
7.8 小結..185
第8 章 使用Spring 進行數(shù)據(jù)庫交互....186
8.1 簡介..186
8.2 MyBank 應用程序的需求..186
8.3 使用Spring JDBC 模塊開發(fā)MyBank 應用
程序..187
8.3.1 配置數(shù)據(jù)源..187
8.3.2 創(chuàng)建使用Spring 的JDBC 模塊類的
DAO ..188
8.4 使用Hibernate 開發(fā)MyBank 應用程序194
8.4.1 配置SessionFactory 實例..194
8.4.2 創(chuàng)建使用Hibernate API 進行數(shù)據(jù)庫
交互的DAO 195
8.5 使用Spring 的事務管理....196
8.5.1 MyBank 的事務管理需求..196
8.5.2 編程式事務管理196
8.5.3 聲明式事務管理199
8.5.4 Spring 對JTA 的支持...202
8.6 使用基于Java 的配置開發(fā)MyBank 應用
程序..203
8.6.1 配置javax.sql.DataSource ..203
8.6.2 配置Hibernate 的SessionFactory204
8.6.3 啟用@Transactional 支持...204
8.7 小結..205
第9 章 Spring Data ...206
9.1 簡介..206
9.2 核心概念和接口.....206
9.3 Spring Data JPA.209
9.3.1 代替存儲庫方法的自定義實現(xiàn).210
9.3.2 將自定義方法添加到存儲庫...211
9.3.3 配置Spring Data JPA—基于
Java 的配置方法212
9.3.4 配置Spring Data JPA—
基于XML 的配置方法214
9.3.5 查詢方法215
9.4 使用Querydsl 創(chuàng)建查詢.....220
9.4.1 將Spring Data 與Querydsl 集成...221
9.4.2 構造Predicate ....221
9.5 按示例查詢..223
9.6 Spring Data MongoDB..224
9.6.1 建模域實體..225
9.6.2 配置Spring Data MongoDB—
基于Java 的配置.....226
9.6.3 配置Spring Data MongoDB—
基于XML 的配置...227
9.6.4 創(chuàng)建自定義存儲庫..228
9.6.5 將自定義方法添加到存儲庫...228
9.6.6 使用Querydsl 創(chuàng)建查詢.....229
9.6.7 使用Query by Example 創(chuàng)建查詢...230
9.7 小結..231
第10 章 使用Spring 進行消息傳遞、
電子郵件發(fā)送、異步方法執(zhí)行
和緩存...232
10.1 簡介232
10.2 MyBank 應用程序的需求232
10.3 發(fā)送JMS 消息233
10.3.1 配置ActiveMQ 代理以在內嵌
模式下運行234
10.3.2 配置一個JMS ConnectionFactory....234
10.3.3 使用JmsTemplate 發(fā)送JMS 消息...235
10.3.4 在事務中發(fā)送JMS 消息..236
10.3.5 動態(tài)JMS 目標和JmsTemplate
配置.239
4 目 錄
10.3.6 JmsTemplate 和消息轉換.239
10.4 接收JMS 消息240
10.4.1 使用JmsTemplate 同步接收JMS
消息.240
10.4.2 使用消息偵聽器容器異步接收
JMS 消息....240
10.4.3 使用@JmsListener 注冊JMS
偵聽器端點242
10.4.4 使用spring-messaging 模塊的消息
傳遞.243
10.5 發(fā)送電子郵件.245
10.5.1 使用MimeMessageHelper
準備MIME 消息...248
10.5.2 使用MimeMessagePreparator 準備
MIME 消息249
10.6 任務調度和異步執(zhí)行.249
10.6.1 TaskExecutor 接口249
10.6.2 TaskScheduler 接口....251
10.6.3 調度bean 方法的執(zhí)行252
10.6.4 @Async 和@Scheduled 注解.252
10.7 緩存254
10.7.1 配置一個CacheManager..255
10.7.2 緩存注解—@Cacheable、
@CacheEvict 和@CachePut...255
10.7.3 使用Spring cache 模式進行緩存
配置.258
10.8 運行MyBank 應用程序...259
10.9 小結261
第11 章 面向切面編程....262
11.1 簡介262
11.2 一個簡單的AOP 示例.....262
11.3 Spring AOP 框架...264
11.3.1 代理的創(chuàng)建265
11.3.2 expose-proxy 特性.266
11.4 切入點表達式.267
11.4.1 @Pointcut 注解267
11.4.2 execution 和args 切入點指示符....268
11.4.3 bean 切入點指示器270
11.4.4 基于注解的切入點指示符.....271
11.5 通知類型....272
11.5.1 前置通知....272
11.5.2 返回后通知272
11.5.3 拋出后通知273
11.5.4 后置通知....274
11.5.5 圍繞通知....274
11.5.6 通過實現(xiàn)特殊接口創(chuàng)建通知.275
11.6 Spring AOP - XML 模式樣式276
11.6.1 配置一個AOP 切面...276
11.6.2 配置一個通知..277
11.6.3 將切入點表達式與通知相關聯(lián)...278
11.7 小結278
第12 章 Spring Web MVC 基礎知識...279
12.1 簡介279
12.2 示例Web 項目的目錄結構...279
12.3 了解“Hello World”網(wǎng)絡應用程序.....280
12.3.1 HelloWorldController.java—Hello
World Web 應用程序的控制器類...280
12.3.2 helloworld.jsp—展示“Hello
World !!”消息的JSP 頁面....282
12.3.3 myapp-config.xml—Web 應用
程序上下文XML 文件....282
12.3.4 web.xml—Web 應用程序部署
描述符..283
12.4 DispatcherServlet—前端控制器....285
訪問ServletContext 和ServletConfig
對象...286
12.5 使用@Controller 和@RequestMapping 注解
開發(fā)控制器..287
使用注解控制器開發(fā)“Hello World”Web
應用程序.287
12.6 MyBank Web 應用程序的需求...289
12.7 Spring Web MVC 注解—
@RequestMapping 和@RequestParam ..290
12.7.1 使用@RequestMapping 將請求
映射到控制器或者控制器方法...290
12.7.2 @RequestMapping 注解方法的
參數(shù).295
12.7.3 @RequestMapping 注解方法的
返回類型....295
12.7.4 使用@RequestParam 將請求參數(shù)
傳遞給控制器方法297
12.8 驗證300
12.9 使用@ExceptionHandler 注解處理
異常302
12.10 加載根Web 應用程序上下文XML
文件....303
12.11 小結....304
目 錄 5
第13 章 Spring Web MVC 中的驗證和
數(shù)據(jù)綁定305
13.1 簡介305
13.2 使用@ModelAttribute 注解添加和獲取
模型特性....305
13.2.1 使用方法級的@ModelAttribute
注解添加模型特性306
13.2.2 使用@ModelAttribute 注解獲取
模型特性....309
13.2.3 請求處理及@ModelAttribute 注解
的方法..310
13.2.4 使用@ModelAttribute 注解的方法
參數(shù)的行為 311
13.2.5 RequestToViewNameTranslator.... 311
13.3 使用@SessionAttributes 注解緩存模型
特性312
13.4 Spring 中對數(shù)據(jù)綁定的支持314
13.4.1 WebDataBinder—Web 請求參數(shù)
的數(shù)據(jù)綁定器..316
13.4.2 配置WebDataBinder 實例.....317
13.4.3 允許或禁止字段參與數(shù)據(jù)綁定
過程.320
13.4.4 使用BindingResult 對象檢查數(shù)據(jù)
綁定和驗證錯誤....322
13.5 Spring 中的驗證支持.323
13.5.1 使用Spring 的Validator 接口驗證
模型特性....323
13.5.2 使用JSR 380 注解指定約束..326
13.5.3 使用JSR 380 注解驗證對象..327
13.6 Spring 的form 標簽庫329
Spring 的form 標簽庫對HTML5 的支持...331
13.7 使用基于Java 的配置方式來配置Web
應用程序....331
13.8 小結333
第14 章 使用Spring Web MVC 開發(fā)
RESTful Web 服務.334
14.1 簡介334
14.2 定期存款Web 服務....334
14.3 使用Spring Web MVC實現(xiàn)RESTful Web
服務335
14.3.1 JSON (JavaScript 對象表示法) ....336
14.3.2 FixedDepositWS Web 服務的
實現(xiàn).337
14.4 使用RestTemplate 和WebClient 訪問
RESTful Web 服務..342
14.4.1 RestTemplate 的配置.342
14.4.2 使用RestTemplate 訪問
FixedDepositWS Web 服務.....343
14.4.3 使用WebClient 異步訪問
RESTful Web 服務.347
14.5 使用HttpMessageConverter 將Java 對象
與HTTP 請求和響應相互轉換.....348
14.5 使用HttpMessageConverter 將Java 對象與HTTP 請求和響應相互轉換.....348
14.6 @PathVariable 和@MatrixVariable 注解...349
14.7 小結352
第15 章 Spring Web MVC 進階—
國際化、文件上傳和異步請求
處理.....353
15.1 簡介353
15.2 使用處理程序攔截器對請求進行預處理
和后處理....353
實現(xiàn)和配置處理程序攔截器...353
15.3 使用資源束進行國際化...355
15.3.1 MyBank Web 應用程序的需求....355
15.3.2 MyBank Web 應用程序的國際化
和本地化....355
15.4 異步地處理請求...357
15.4.1 異步請求處理配置358
15.4.2 從@RequestMapping 方法返回
Callable.358
15.4.3 從@RequestMapping 方法中返回
Deffered Result.359
15.4.4 設置默認超時時間365
15.4.5 攔截異步請求..365
15.5 Spring 中的類型轉換和格式化支持.366
15.5.1 創(chuàng)建自定義轉換器366
15.5.2 配置和使用自定義轉換器.....366
15.5.3 創(chuàng)建一個自定義的格式化器.368
15.5.4 配置一個自定義格式化器.....369
15.5.5 創(chuàng)建AnnotationFormatterFactory
以格式化僅使用@AmountFormat
注解的字段369
15.5.6 配置AnnotationFormatterFactory 的
實現(xiàn)..370
15.6 Spring Web MVC 中的文件上傳支持....372
15.6.1 使用CommonsMultipartResolver
上傳文件....372
6 目 錄
15.6.2 使用StandardServletMultipartResolver
上傳文件.....374
15.7 小結374
第16 章 使用Spring Security 保護應用
程序..375
16.1 簡介375
16.2 MyBank Web 應用程序的安全性
需求375
16.3 使用Spring Security 保護MyBank Web
應用程序....376
16.3.1 Web 請求安全的配置.376
16.3.2 身份認證配置..378
16.3.3 使用Spring Security 的JSP 標簽庫
保護JSP 內容..379
16.3.4 保護方法....380
16.4 MyBank Web 應用程序—使用Spring
Security 的ACL 模塊保護FixedDeposit
Details 實例383
16.4.1 部署和使用ch16-bankapp-dbsecurity
項目...383
16.4.2 存儲ACL 和用戶信息的
數(shù)據(jù)庫表....385
16.4.3 用戶認證....387
16.4.4 Web 請求安全..388
16.4.5 JdbcMutableAclService 配置..389
16.4.6 方法級安全配置....391
16.4.7 域對象實例的安全392
16.4.8 以編程方式管理ACL 條目...394
16.4.9 MutableAcl 及安全性.396
16.5 使用基于Java 的配置方法配置
Spring Security 397
16.5.1 使用WebSecurityConfigurerAdapter
類配置Web 請求安全397
16.5.2 使用GlobalMethodSecurity
Configuration 類配置方法級安全...398
16.5.3 將DelegatingFilterProxy 過濾器
注冊到ServletContext 398
16.5.4 將DispatcherServlet 和Context
LoaderListener 注冊到
ServletContext .399
16.6 小結399
第17 章 Java 的函數(shù)式編程...400
17.1 簡介400
17.2 命令式和函數(shù)式編程風格....400
17.3 lambda 表達式401
17.4 創(chuàng)建簡單函數(shù)和高階函數(shù)....404
17.4.1 簡單函數(shù)....405
17.4.2 高階函數(shù)....406
17.5 流API...408
中間操作和終結操作....409
延遲求值.411
順序流和并行流413
17.6 方法引用....415
17.7 小結416
第18 章 RxJava 2 的反應式編程.417
18.1 簡介417
18.2 反應式流....418
心跳監(jiān)測應用程序..418
18.3 冷發(fā)布者和熱發(fā)布者.422
StockQuote 應用程序....423
18.4 背壓430
18.5 小結434
第19 章 用Spring WebFlux、Spring Data 和
Spring Security 開發(fā)反應式RESTful
Web 服務....435
19.1 簡介435
19.2 Reactor 和RxJava 2 定義的
反應式類型..435
19.3 Developing the data access layer using
Spring Data ...437
Reactor.....437
RxJava 2 ..441
19.4 使用Spring WebFlux 開發(fā)Web 層...444
編寫反應式Web 控制器.....445
配置Spring WebFlux .....445
配置ServletContext .446
使用WebClient 與反應式RESTful Web
服務交互.446
使用服務器發(fā)送事件接收數(shù)據(jù).....449
19.5 保護WebFlux 應用程序的安全性....450
19.6 小結454
附錄A 下載和安裝MongoDB 數(shù)據(jù)庫...455
A.1 下載并安裝MongoDB 數(shù)據(jù)庫....455
啟動MongoDB 數(shù)據(jù)庫服務器455
A.2 連接MongoDB 數(shù)據(jù)庫.....455
目 錄 7
附錄B 在Eclipse IDE 中導入和運行示例
項目...457
B.1 下載和安裝Eclipse IDE 和Tomcat 9 457
B.2 將示例項目導入Eclipse IDE 中..457
B.2.1 將示例項目導入Eclipse IDE 中...457
B.2.2 在Eclipse IDE 中配置M2_REPO
類路徑變量.458
B.3 在Eclipse IDE 中配置Tomcat 9 服務器458
B.4 在Tomcat 9 服務器上部署Web 項目.....460

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號