《Spring 5高级编程》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)尤莉安娜·科斯米纳(LULIANACOSMINA),罗布·哈罗普(ROBHARROP),克里斯·舍弗(CHRISSCHAEFER),克拉伦斯·厚(CLARENCEHO)著;王净译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2019
  • ISBN:9787302516446
  • 页数:543 页
图书介绍:全书共18章,具体是:Spring简介、Spring起步、Spring中的IoC和DI、Spring配置和Spring Boot、Spring AOP简介、Spring JDBC支持、在Spring中使用Hibernate、使用JPA2在Spring中进行数据访问、事务管理、使用类型转换和格式化进行验证、任务调度、Spring测试、Spring中的脚本支持、应用监控、Web应用、WebSocket、Spring项目(Batch、Integration、XD等)。

第1章Spring介绍 1

1.1什么是Spring 1

1.1.1 Spring框架的演变 1

1.1.2翻转控制或依赖注入 5

1.1.3依赖注入的演变 6

1.1.4除了依赖注入 7

1.2 Spring项目 10

1.2.1 Spring的起源 10

1.2.2 Spring社区 10

1.2.3 Spring工具套件 11

1.2.4 Spring Security项目 11

1.2.5 Spring Boot 11

1.2.6 Spring批处理和集成 11

1.2.7许多其他项目 11

1.3 Spring的替代品 12

1.3.1 JBoss Seam框架 12

1.3.2 Google Guice 12

1.3.3 PicoContainer 12

1.3.4 JEE 7容器 12

1.4小结 12

第2章 入门 13

2.1获取Spring框架 13

2.1.1快速入门 13

2.1.2在GitHub中查找Spring 14

2.1.3使用正确的JDK 14

2.2了解Spring打包 14

2.2.1为自己的应用程序选择模块 15

2.2.2在Maven存储库上访问Spring模块 15

2.2.3使用 Gradle访问 Spring模块 16

2.2.4 使用Spring文档 17

2.2.5将Spring放入Hello World中 17

2.2.6构建示例Hello World应用程序 17

2.2.7用Spring重构 20

2.3小结 22

第3章在Spring中引入loC和DI 23

3.1控制反转和依赖注入 23

3.2控制反转的类型 23

3.2.1依赖拉取 24

3.2.2 上下文依赖查找 24

3.2.3构造函数依赖注入 25

3.2.4 setter依赖注入 25

3.2.5注入与查找 25

3.2.6 serier注入与构造函数注入 26

3.3 Spring中的控制反转 28

3.4 Spring中的依赖注入 28

3.4.1 bean和BeanFactory 28

3.4.2 BeanFactoty实现 29

3.4.3 ApplicationContext 30

3.5配置ApplicationContext 30

3.5.1设置Spring配置选项 30

3.5.2基本配置概述 30

3.5.3声明Spring组件 31

3.5.4使用方法注入 53

3.5.5了解bean命名 60

3.5.6 了解bean实例化模式 66

3.6解析依赖项 69

3.7自动装配bean 71

3.8设置bean继承 77

3.9小结 79

第4章 详述Spring 配置和SpringBoot 80

4.1 Spring对应用程序可移植性的影响 80

4.2管理bean生命周期 81

4.3挂钩到bean的创建 82

4.3.1在创建bean时执行方法 82

4.3.2实现InitializingBean接口 84

4.3.3使用JSR-250 @PostConstruct注解 86

4.4使用@Bean声明一个初始化方法 88

4.5挂钩到bean的销毁 89

4.5.1在bean被销毁时执行一个方法 89

4.5.2实现DisposableBean接口 91

4.5.3使用JSR-250@PreDestroy注解 92

4.6使用@Bean声明销毁方法 93

4.7了解解析的顺序 94

4.8 让 Spring感知bean 94

4.8.1使用BeanNameAware接口 95

4.8.2使用ApplicationContextAware接口 96

4.9使用FactoryBean 97

4.10直接访问FactoryBean 100

4.11使用factory-bean和factory-method属性 101

4.12 JavaBean PropertyEditor 102

4.12.1使用内置的PropertyEditor 102

4.12.2创建自定义PropertyEditor 106

4.13更多的Spring ApplicationContext配置 108

4.13.1使用MessageSource进行国际化 108

4.13.2在独立的应用程序中使用MessageSource 110

4.13.3应用程序事件 111

4.14访问资源 112

4.15 使用Java类进行配置 113

4.15.1 Java中的ApplicationContext配置 113

4.15.2 Spring混合配置 119

4.15.3 Java或XML配置? 121

4.16配置文件 121

4.17使用Java配置来配置Spring配置文件 123

4.18 Environment和ProperrySource抽象 125

4.19使用JSR-330注解进行配置 128

4.20使用Groovy进行配置 130

4.21 Spring Boot 132

4.22小结 135

第5章Spring AOP 136

5.1 AOP概念 137

5.2 AOP的类型 137

5.2.1使用静态AOP 137

5.2.2使用动态AOP 137

5.2.3选择AOP类型 138

5.3 Spring中的AOP 138

5.3.1 AOP Alliance 138

5.3.2 AOP中的Hello World示例 138

5.4 Spring AOP架构 139

5.4.1 Spring中的连接点 139

5.4.2 Spring中的切面 140

5.4.3关于ProxyFactoty类 140

5.4.4在Spring中创建通知 140

5.4.5通知的接口 141

5.4.6 创建前置通知 141

5.4.7通过使用前置通知保护方法访问 142

5.4.8 创建后置返回通知 145

5.4.9创建环绕通知 147

5.4.10创建异常通知 148

5.4.11选择通知类型 150

5.5在Spring中使用顾问和切入点 150

5.5.1 Pointcut接口 151

5.5.2可用的切入点实现 152

5.5.3使用DefauItPointcutAdvisor 152

5.5.4使用StaticMethodMatcherPointcut创建静态切入点 153

5.5.5使用DyanmicMethodMatcherPointcut创建动态切入点 155

5.5.6使用简单名称匹配 157

5.5.7用正则表达式创建切入点 158

5.5.8使用AspectJ切入点表达式创建切入点 159

5.5.9创建注解匹配切入点 160

5.5.10便捷的Advisor实现 161

5.6了解代理 161

5.6.1使用JDK动态代理 162

5.6.2使用CGLIB代理 162

5.6.3比较代理性能 163

5.6.4选择要使用的代理 165

5.7切入点的高级使用 166

5.7.1使用控制流切入点 166

5.7.2使用组合切入点 168

5.7.3组合和切入点接口 170

5.7.4切入点小结 170

5.8引入入门 170

5.8.1引入的基础知识 171

5.8.2使用引入进行对象修改检测 172

5.8.3引入小结 175

5.9 AOP的框架服务 175

5.9.1以声明的方式配置AOP 175

5.9.2使用ProxyFactoryBean 176

5.9.3使用aop名称空间 180

5.10使用@AspectJ样式注解 184

5.11 AspectJ集成 189

5.11.1关于AspectJ 189

5.11.2使用单例切面 189

5.12小结 191

第6章Spring JDBC支持 192

6.1介绍Lambda表达式 192

6.2示例代码的示例数据模型 193

6.3研究JDBC基础结构 196

6.4 Spring JDBC基础结构 199

6.5数据库连接和数据源 200

6.6嵌入数据库支持 203

6.7在DAO类中使用DataSource 204

6.8异常处理 206

6.9 JdbcTemplate类 207

6.9.1在DAO类中初始化JdbcTemplate 207

6.9.2通过NamedParameterJdbcTemplate使用命名参数 209

6.9.3使用RowMapper〈T〉检索域对象 210

6.10使用ResultSetExtractor检索嵌套域对象 211

6.11建模JDBC操作的Spring类 213

6.12使用MappingSqlQuery〈T〉查询数据 215

6.13插入数据并检索生成的键 220

6.14使用BatchSqlUpdate进行批处理操作 221

6.15 使用SqlFunction调用存储函数 225

6.16 Spring Data项目:JDBC Extensions 226

6.17使用JDBC的注意事项 226

6.18 Spring Boot JDBC 227

6.19小结 229

第7章在Spring中使用Hibernate 230

7.1示例代码的示例数据模型 230

7.2配置Hibernate的SessionFactory 232

7.3使用Hibernate注解的ORM映射 234

7.3.1简单的映射 235

7.3.2.对多映射 238

7.3.3多对多映射 239

7.4 Hibernate会话接口 240

7.4.1使用Hibernate查询语言查询数据 241

7.4.2使用延迟获取进行简单查询 241

7.4.3使用关联获取进行查询 243

7.5插入数据 245

7.6更新数据 248

7.7删除数据 249

7.8配置Hibernate以便从实体生成表 250

7.9注解方法或字段? 252

7.10使用Hibernate时的注意事项 254

7.11小结 254

第8章在Spring中使用JPA 2进行数据访问 255

8.1 JPA2.1介绍 255

8.1.1示例代码的示例数据模型 256

8.1.2配置JPA的EntityManagerFactory 256

8.1.3使用JPA注解进行ORM映射 258

8.2使用JPA执行数据库操作 259

8.2.1使用Java持久化查询语言来查询数据 260

8.2.2查询非类型化结果 266

8.3使用构造函数表达式查询自定义结果类型 267

8.3.1插入数据 269

8.3.2更新数据 271

8.3.3删除数据 272

8.4使用本地查询 273

8.5使用简单的本地查询 273

8.6使用SQL ResultSet映射进行本地查询 274

8.7 Spring Data JPA介绍 278

8.7.1添加Spring Data JPA库依赖项 279

8.7.2使用Spring Data JPA Repository抽象进行数据库操作 279

8.8使用JpaRepository 283

8.9带有自定义查询的Spring Data JPA 284

8.10通过使用Hibernate Envers保存实体版本 293

8.10.1为实体版本控制添加表 293

8.10.2为实体版本控制配置EntityManagerFactory 294

8.10.3启用实体版本控制和历史检索 296

8.10.4测试实体版本控制 297

8.11 Spring Boot JPA 298

8.12使用JPA时的注意事项 302

8.13小结 302

第9章 事务管理 303

9.1研究Spring事务抽象层 303

9.2 PlatformTransactionManager的实现 304

9.3分析事务属性 305

9.3.1 TransactionDefinition接口 305

9.3.2 TransactionStatus接口 306

9.4示例代码的示例数据模型和基础结构 307

9.4.1创建一个带有依赖项的简单Spring JPA项目 307

9.4.2示例数据模型和通用类 308

9.4.3使用AOP配置进行事务管理 315

9.5使用编程式事务 316

9.6使用Spring实现全局事务 318

9.6.1实现JTA示例的基础结构 318

9.6.2使用JTA实现全局事务 319

9.6.3 Spring Boot JTA 325

9.6.4使用JTA事务管理器的注意事项 328

9.7小结 329

第10章 使用类型转换和格式化进行验证 330

10.1依赖项 330

10.2 Spring类型转换系统 331

10.3使用PropertyEditors从字符串进行转换 331

10.4 Spring类型转换介绍 333

10.4.1实现自定义转换器 333

10.4.2 配置ConversionService 334

10.4.3任意类型之间的转换 335

10.5 Spring中的字段格式化 338

10.5.1实现自定义格式化器 338

10.5.2配置ConversionServiceFactoryBean 339

10.6 Spring中的验证 340

10.6.1使用Spring Validator接口 340

10.6.2使用JSR-349 Bean Validation 342

10.6.3在Spring中配置Bean Validation支持 343

10.6.4创建自定义验证器 344

10.7使用AssertTrue进行自定义验证 346

10.8 自定义验证的注意事项 347

10.9决定使用哪种验证API 347

10.10小结 347

第11章 任务调度 348

11.1任务调度示例的依赖项 348

11.2 Spring中的任务调度 349

11.2.1 Spring TaskScheduler抽象介绍 349

11.2.2研究示例任务 350

11.2.3使用注解进行任务调度 355

11.2.4 Spring中异步任务的执行 357

11.3 Spring中任务的执行 359

11.4小结 360

第12章 使用Spring远程处理 361

12.1使用示例的数据模型 362

12.2为JPA后端添加必需的依赖项 363

12.3实现和配置SingerService 364

12.3.1实现SingerService 364

12.3.2配置SingerService 365

12.3.3公开服务 367

12.3.4调用服务 368

12.4在Spring中使用JMS 369

12.4.1在Spring中实现JMS监听器 371

12.4.2在Spring中发送JMS消息 372

12.5 Spring Boot Artemis启动器 373

12.6在Spring中使用RESTful-WS 375

12.6.1 REST ful Web服务介绍 375

12.6.2为示例添加必需的依赖项 376

12.6.3设计Singer RESTful Web服务 376

12.6.4使用Spring MVC展示 REST样式的Web服务 376

12.7配置Castor XML 377

12.7.1实现SingerController 378

12.7.2配置Spring Web应用程序 380

12.7.3使用curl测试RESTful-WS 382

12.7.4使用 RestTemplate访问 RESTful-WS 383

12.7.5使用Spring Security来保护RESTful-WS 386

12.8使用Spring Boot开发RESTful-WS 389

12.9在Spring中使用AMQP 392

12.10小结 397

第13章Spring测试 398

13.1测试类别介绍 398

13.2使用Spring测试注解 399

13.3实施逻辑单元测试 400

13.3.1添加所需的依赖项 400

13.3.2单元测试Spring MVC控制器 401

13.4实现集成测试 403

13.4.1添加所需的依赖项 403

13.4.2配置用于服务层测试的配置文件 403

13.4.3 Java配置版本 404

13.4.4实施基础结构类 405

13.4.5对服务层进行单元测试 408

13.4.6丢弃DbUnit 410

13.5实现前端单元测试 413

13.6小结 413

第14章Spring中的脚本支持 414

14.1在Java中使用脚本支持 414

14.2 Groovy介绍 415

14.2.1动态类型化 416

14.2.2简化的语法 416

14.2.3闭包 417

14.3与Spring一起使用Groovy 418

14.3.1开发Singer对象域 418

14.3.2实现规则引擎 418

14.3.3将规则工厂实现为Spring可刷新bean 420

14.3.4测试年龄分类规则 421

14.3.5内联动态语言代码 423

14.4小结 424

第15章 应用程序监控 425

15.1 Spring中的JMX支持 425

15.2将Spring bean导出为JMX 425

15.3使用Java VisualVM进行JMX监控 426

15.4监视Hibernate统计信息 428

15.5使用了Spring Boot的JMX 429

15.6小结 431

第16章Web应用程序 432

16.1实现示例的服务层 433

16.1.1对示例使用数据模型 433

16.1.2实现DAO 层 435

16.1.3实现服务层 435

16.2配置SingerService 436

16.3 MVC和Spring MVC介绍 437

16.3.1 MVC介绍 438

16.3.2 Spring MVC介绍 438

16.3.3 Spring MVC WebApplicationContext层次结构 439

16.3.4 Spring MVC请求生命周期 439

16.3.5 Spring MVC配置 440

16.3.6在Spring MVC中创建第一个视图 442

16.3.7配置DispatcherServlet 443

16.3.8实现Singe Controller 444

16.3.9实现歌手列表视图 445

16.3.10测试歌手列表视图 445

16.4理解Spring MVC项目结构 445

16.5实现国际化(il8n) 446

16.5.1在DispatcherServlet配置中配置国际化 446

16.5.2为国际化支持而修改歌手列表视图 448

16.6使用主题和模板 448

16.7使用Apache Tiles查看模板 450

16.7.1设计模板布局 450

16.7.2实现页面布局组件 451

16.8在Spring MVC中配置Tiles 453

16.9实现歌手信息视图 454

16.9.1将URL映射到视图 454

16.9.2实现显示歌手视图 454

16.9.3实现编辑歌手视图 456

16.9.4实现添加歌手视图 459

16.9.5启用JSR-349(bean验证) 460

16.10使用jQuery和jQuery UI 462

16.10.1 jQuery和jQuery UI介绍 462

16.10.2在视图中使用jQuery和jQuery UI 462

16.10.3使用CKEditor进行富文本编辑 463

16.10.4使用jqGrid实现具有分页支持的数据网格 464

16.10.5在歌手列表视图中启用jqGrid 464

16.10.6在服务器端启 用分页 466

16.11处理文件上传 468

16.11.1配置文件上传支持 468

16.11.2修改视图以支持文件上传 469

16.11.3修改控制器以支持文件上传 470

16.12用Spring Security保护Web应用程序 471

16.12.1配置Spring安全性 471

16.12.2将登录功能添加到应用程序中 473

16.12.3使用注解来保护控制器方法 475

16.13使用Sprng Boot创建Spring Web应用程序 475

16.14设置DAO层 476

16.14.1设置服务层 477

16.14.2设置Web层 478

16.14.3设置Spring安全性 479

16.15 创建Thymeleaf视图 479

16.16使用Thymeleaf扩展 482

16.17小结 486

第17章WebSocket 487

17.1 WebSocket介绍 487

17.2与Spring一起使用WebSocket 487

17.3使用WebSocket API 488

17.4使用STOMP发送消息 496

17.5小结 500

第18章Spring项目:批处理、集成和XD等 501

18.1 Spring Batch 502

18.2 JSR-352 507

18.3 Spring Boot Batch 509

18.4 Spring Integration 512

18.5 Spring XD 516

18.6 Spring框架的五个最显著的功能 517

18.6.1功能性Web框架 518

18.6.2 Java 9 互操作性 526

18.6.3 JDK模块化 526

18.6.4使用Java 9和 Spring WebFlux进行反应式编程 528

18.6.5 Spring支持JUnit 5 Jupiter 529

18.7小结 536

附录A设置开发环境 537