Spring 5高级编程(第5版)

Spring 5高级编程(第5版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Iuliana Cosmina)
2018-12
版次: 1
ISBN: 9787302516446
定价: 128.00
装帧: 其他
开本: 16开
纸张: 胶版纸
46人买过
  • 《Spring 5高级编程(第5版)》涵盖核心的Spring 及其与其他领先的Java 技术(比如Hibernate、JPA 2、Tiles、Thymeleaf 和WebSocket)的集成。重点介绍如何使用Java 配置类、lambda 表达式、Spring Boot 以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。
      通过《Spring 5高级编程(第5版)》,你可以学习如何完成以下事情:
      ● 使用控制反转(IoC)和依赖注入(DI)。
      ● 了解Spring 5 中的新功能。
      ● 使用Spring MVC 和WebSocket 构建基于Spring 的Web 应用程序。
      ● 使用Spring WebFlux 构建Spring Web 反应式应用程序。
      ● 使用JUnit 5 测试Spring 应用程序。
      ● 使用新的Java 8 lambda 语法。
      ● 使用Spring Boot 达到更高的水平,以获取任何类型的Spring 应用程序并立即运行。
      ● 在Spring 应用程序中使用Java 9 的新功能 Iuliana Cosmina是一名Spring认证的Web应用程序开发人员,也是Spring认证的Spring专家(由Pivotal定义,Pivotal是Spring框架、Spring Boot以及其他工具的制造商)。她曾与Apress出版社合作出版了多本关于核心Spring认证和Spring认证Web开发的书籍。她是来自Bearing Point Software的一名软件架构师,也是GitHub、Stack Overflow等平台上活跃的编码者和软件贡献者。

     

    Rob Harrop是一位软件顾问,致力于提供高性能、高度可扩展的企业级应用程序。他是一位经验丰富的架构师,对于理解和解决复杂的设计问题具有极高天赋。凭借扎实的Java和.NET开发功力,Harrop已经成功在两种平台上部署不少项目。此外,他还在其他行业拥有丰富的经验,尤其是零售和政府领域。Harrop共独自撰写或参与撰写了5本书,其中就包括本书(当然不是第5版),该书广受好评,包含大量关于Spring框架的资源。

     

    Chris Schaefer是Pivotal Spring项目的主要软件开发人员,Pivotal是Spring框架、Spring Boot以及其他Spring工具的制造商。

     

    Clarence Ho是中国香港软件咨询公司SkywideSoft Technology Limited的Java高级架构师。Clarence在IT领域工作了20多年,一直担任许多内部应用程序开发项目的团队负责人,并为客户提供有关企业解决方案的咨询服务。 目    录

    第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中引入IoC和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  setter注入与构造函数注入    26

    3.3  Spring中的控制反转    28

    3.4  Spring中的依赖注入    28

    3.4.1  bean和BeanFactory    28

    3.4.2  BeanFactory实现    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配置和Spring Boot    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和PropertySource抽象    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  关于ProxyFactory类    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  使用DefaultPointcutAdvisor    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检索域对象    210

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

    6.11  建模JDBC操作的Spring类    213

    6.12  使用MappingSqlQuery查询数据    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  JPA 2.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  RESTful 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  实现SingerController    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  使用Spring 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

     
  • 内容简介:
    《Spring 5高级编程(第5版)》涵盖核心的Spring 及其与其他领先的Java 技术(比如Hibernate、JPA 2、Tiles、Thymeleaf 和WebSocket)的集成。重点介绍如何使用Java 配置类、lambda 表达式、Spring Boot 以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。
      通过《Spring 5高级编程(第5版)》,你可以学习如何完成以下事情:
      ● 使用控制反转(IoC)和依赖注入(DI)。
      ● 了解Spring 5 中的新功能。
      ● 使用Spring MVC 和WebSocket 构建基于Spring 的Web 应用程序。
      ● 使用Spring WebFlux 构建Spring Web 反应式应用程序。
      ● 使用JUnit 5 测试Spring 应用程序。
      ● 使用新的Java 8 lambda 语法。
      ● 使用Spring Boot 达到更高的水平,以获取任何类型的Spring 应用程序并立即运行。
      ● 在Spring 应用程序中使用Java 9 的新功能
  • 作者简介:
    Iuliana Cosmina是一名Spring认证的Web应用程序开发人员,也是Spring认证的Spring专家(由Pivotal定义,Pivotal是Spring框架、Spring Boot以及其他工具的制造商)。她曾与Apress出版社合作出版了多本关于核心Spring认证和Spring认证Web开发的书籍。她是来自Bearing Point Software的一名软件架构师,也是GitHub、Stack Overflow等平台上活跃的编码者和软件贡献者。

     

    Rob Harrop是一位软件顾问,致力于提供高性能、高度可扩展的企业级应用程序。他是一位经验丰富的架构师,对于理解和解决复杂的设计问题具有极高天赋。凭借扎实的Java和.NET开发功力,Harrop已经成功在两种平台上部署不少项目。此外,他还在其他行业拥有丰富的经验,尤其是零售和政府领域。Harrop共独自撰写或参与撰写了5本书,其中就包括本书(当然不是第5版),该书广受好评,包含大量关于Spring框架的资源。

     

    Chris Schaefer是Pivotal Spring项目的主要软件开发人员,Pivotal是Spring框架、Spring Boot以及其他Spring工具的制造商。

     

    Clarence Ho是中国香港软件咨询公司SkywideSoft Technology Limited的Java高级架构师。Clarence在IT领域工作了20多年,一直担任许多内部应用程序开发项目的团队负责人,并为客户提供有关企业解决方案的咨询服务。
  • 目录:
    目    录

    第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中引入IoC和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  setter注入与构造函数注入    26

    3.3  Spring中的控制反转    28

    3.4  Spring中的依赖注入    28

    3.4.1  bean和BeanFactory    28

    3.4.2  BeanFactory实现    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配置和Spring Boot    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和PropertySource抽象    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  关于ProxyFactory类    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  使用DefaultPointcutAdvisor    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检索域对象    210

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

    6.11  建模JDBC操作的Spring类    213

    6.12  使用MappingSqlQuery查询数据    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  JPA 2.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  RESTful 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  实现SingerController    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  使用Spring 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

     
查看详情
相关图书 / 更多
Spring 5高级编程(第5版)
Spring Framework6开发实战 Spring+Spring Web MVC+MyBatis
肖海鹏、耿卫江、王荣芝、张天怡、张志慧
Spring 5高级编程(第5版)
Spark大数据分析
作者
Spring 5高级编程(第5版)
Spark入门与大数据分析实战
迟殿委 李超
Spring 5高级编程(第5版)
Spark大数据开发(职业教育计算机系列教材)
唐春玲;周桥;陈小龙
Spring 5高级编程(第5版)
Spring Boot+Vue前后端分离项目全栈开发实战
唐文
Spring 5高级编程(第5版)
Spring快速入门到精通
明日科技 编著
Spring 5高级编程(第5版)
Spring Boot 3.0开发实战
李西明;陈立为
Spring 5高级编程(第5版)
Spark分布式处理实战
刘均 王璐烽
Spring 5高级编程(第5版)
Spring Security原理与实战:构建安全可靠的微服务
邹炎
Spring 5高级编程(第5版)
Spark原理深入与编程实战(微课视频版)
辛立伟;张帆;张会娟
Spring 5高级编程(第5版)
Spring Cloud Alibaba大型微服务架构项目实战(上册)
十三 著
Spring 5高级编程(第5版)
Spring Boot 3 +Vue 3开发实战
朱建昕
您可能感兴趣 / 更多
Spring 5高级编程(第5版)
争吵的恋人:我们为什么相爱,又为什么争吵
[美]约翰·金,[美]瓦妮莎·贝内特
Spring 5高级编程(第5版)
蒙特卡洛的密码锁(数学大师的逻辑课) 文教科普读物 [美]雷蒙德·m.斯穆里安(raymondm.smullyan)
[美]雷蒙德·m.斯穆里安(raymondm.smullyan)
Spring 5高级编程(第5版)
全新正版图书 新任管理者快速成长蕾切尔·帕切科浙江教育出版社9787572277214
[美]蕾切尔· 帕切科
Spring 5高级编程(第5版)
《生命大设计.重构》(关于“生命创造现实”这一惊人事实,独特且完整的科学探索与哲学诠释)
[美]鲍勃·伯曼 著;杨泓 译;[美]罗伯特·兰札;马泰·帕夫希奇(斯洛文尼亚)
Spring 5高级编程(第5版)
杰出投资者的底层认知:成功投资与明智创富的10个茅塞顿开之问(《聪明的投资者》新时代精华版)
[美]J.戴维·斯坦恩(J.David Stein) 著;刘寅龙 译;庞鑫
Spring 5高级编程(第5版)
浴缸里的海洋
[美]塞思·菲什曼
Spring 5高级编程(第5版)
新视界文库-生命故事:生物学上的伟大发现
[美]肖恩·B.卡罗尔
Spring 5高级编程(第5版)
洛丽塔原型:小说《洛丽塔》背后的萨莉?霍纳绑架案
[美]萨拉·魏恩曼 著;真故图书 出品
Spring 5高级编程(第5版)
托尔斯泰
[美]莉莎·克纳普(Liza Knapp)
Spring 5高级编程(第5版)
奇迹之门 《纽约时报》畅销书作家写给孩子的一封“成长家书”。让父母的爱与肯定,成为孩子探索世界的底气。拥抱成长的不确定性,打开通向无限可能的“奇迹之门”。
[美]艾莉森·麦基/文 (美) 柳泰恩 图
Spring 5高级编程(第5版)
全球通史(全六册)(另一个角度的“全球通史”,不一样的视野与新知。以地理为骨,历史为肉,一部超级丰满的世界通史。)
[美]塞缪尔·古德里奇 译者:冷惠玲、冯佳娜、王小忠、孙丽霞、李江艳
Spring 5高级编程(第5版)
《星际争霸》动画影像艺术
[美]罗伯特·布鲁克斯