全书目录:《Spring Boot 实战开发 》(陈光剑 编著)

简介: image.pngSpring Boot 简介 151.1. 从 Spring 到Spring Boot 161.1.1.
image.png
  1. Spring Boot 简介 15
    1.1. 从 Spring 到Spring Boot 16
    1.1.1. 从 EJB 到 Spring 16
    1.1.2. Spring 框架发展简史 19
    1.1.3. Spring 框架的核心模块 21
    1.1.4. Spring 新生态 28
    1.2. Spring Boot 是什么 29
    1.3. Spring Boot 框架组成 30
    1.3.1. spring-boot 31
    1.3.2. spring-boot-starters 31
    1.3.3. spring-boot-autoconfigure 31
    1.3.4. spring-boot-actuator 32
    1.3.5. spring-boot-tools 32
    1.3.6. spring-boot-cli 32
    1.4. Spring Boot 极简特性 32
    1.5. 约定优于配置极简化理念 34
    1.6. Spring 5.0 新特性 36
    1.7. Spring Boot 2.0 新特性 36
    1.8. Spring Cloud 简介 36
    1.9. 最新IntelliJ IDEA 2017.3版本特性 36
    1.10. 本章小结 36
  2. 快速开始 HelloWorld 36
    2.1. 创建 Spring Boot 项目 36
    2.2. Spring Boot 项目的入口类 42
    2.3. 添加 HelloWorldController 44
    2.4. Spring Boot应用级注解 @SpringBootApplication 47
    2.4.1. Spring Boot配置类注解 @SpringBootConfiguration 48
    2.4.2. XML 配置文件 VS. JavaConfig 注解配置 49
    2.4.3. 启用自动配置注解 @EnableAutoConfiguration 50
    2.4.4. 组件扫描注解 @ComponentScan 51
    2.4.5. 导入配置类注解 @Import 52
    2.5. 本章小结 52
  3. 深入理解Spring Boot 自动配置 53
    3.1. 传统 SSM 开发回顾 53
    3.1.1. 创建 Maven 工程 53
    3.1.2. 添加源代码和资源目录 58
    3.1.3. 引入项目依赖的JAR包 60
    3.1.4. 配置 Spring 上下文spring.xml 63
    3.1.5. 配置 SpringMVC 的上下文spring-mvc.xml 66
    3.1.6. DispatcherServlet在web.xml中的配置 68
    3.1.7. 完整的 web.xml 配置 68
    3.1.8. mybatis-generator配置 73
    3.1.9. 数据库表结构 74
    3.1.10. MapperScanner和SqlSessionFactoryBean配置 75
    3.1.11. Service 层和 Controller 层代码 80
    3.1.12. 配置 Tomcat 服务器 84
    3.1.13. 视图模板层代码 87
    3.2. Spring 简化 XML 配置的解决方案 91
    3.3. 自动配置的 Spring Boot 93
    3.3.1. 条件注解 @Conditional 93
    3.3.2. @Conditional注解使用实例 93
    3.3.3. 常见条件注解 105
    3.3.4. 组合注解 106
    3.4. Spring Boot Starters 106
    3.5. @EnableAutoConfiguration自动配置原理 108
    3.5.1. 自动配置过程 108
    3.5.2. spring.factories文件 110
    3.5.3. getCandidateConfigurations 方法 117
    3.6. FreeMarkerAutoConfiguration自动配置实例分析 118
    3.6.1. spring-boot-starter-freemarker工程 118
    3.6.2. spring-boot-autoconfigure工程 120
    3.7. Spring Boot Autoconfigure 工作原理图 125
    3.8. 本章小结 126
  4. Spring Boot 命令行 CLI 127
    4.1. 安装 CLI 127
    4.2. 快速开始Hello World 128
    4.3. spring命令 131
    4.4. 使用@Grab注解下载依赖 133
    4.5. beans Groovy DSL 134
    4.6. 创建项目命令 spring init 135
    4.7. 本章小结 138
  5. Spring Boot 集成 MyBatis数据库层开发 138
    5.1. Java EE 的分层模型 139
    5.1.1. 模型层 141
    5.1.2. 数据访问对象层 141
    5.1.3. 业务逻辑层 141
    5.1.4. 控制器层 141
    5.1.5. 视图层 141
    5.2. MyBatis 简介 141
    5.2.1. 概述 142
    5.2.2. MyBatis 框架组成 143
    5.2.3. 接口层 143
    5.2.4. 数据处理层 147
    5.2.5. 基础设施层 152
    5.3. 项目实战 164
    5.3.1. 使用 Spring Boot CLI 创建工程 164
    5.3.2. 配置application.properties 176
    5.3.3. 使用IDEA 中自带的连接数据库客户端 177
    5.3.4. 使用 MyBatis Generator 生成 Dao 层代码 178
    5.3.5. 配置MyBatis同时使用 Mapper.xml和注解 183
    5.3.6. 使用 MyBatis分页 插件pagehelper 186
    5.3.7. 实现查询接口 186
    5.3.8. 使用@Select注解 187
    5.3.9. Mybatis插件机制 190
    5.3.10. 实现分页接口 192
    5.3.11. PageHelper工作原理 197
    5.3.12. 多表关联查询级联 206
    5.4. 本章小结 211
  6. Spring Boot 集成 JPA数据库层开发 212
    6.1. JPA是什么 212
    6.1.1. JPA 简介 212
    6.1.2. JPA 整体架构 212
    6.1.3. JPA 生态 214
    6.1.4. JPA 技术栈 217
    6.1.5. ORM 框架概述 217
    6.2. Hibernate 简介 219
    6.2.1. Hibernate 模块组成 219
    6.2.2. Hibernate整体架构 219
    6.2.3. Hibernate 特性 226
    6.2.4. Hibernate 与 MyBatis 简单对比 228
    6.3. Spring Data JPA简介 228
    6.3.1. Spring Data 项目 229
    6.3.2. Spring Data JPA概述 232
    6.4. 项目实战 232
    6.4.1. Spring Data JPA提供的接口 232
    6.4.2. 创建项目 233
    6.4.3. 工程导入 IDEA 235
    6.4.4. 配置数据库 237
    6.4.5. 自动生成 Entity 实体类代码 238
    6.4.6. 配置项目数据源信息 248
    6.4.7. 实现查询接口 248
    6.4.8. 分页查询 253
    6.4.9. 多表级联查询 256
    6.4.10. 级联类型CascadeType 259
    6.4.11. 模糊搜索接口 261
    6.4.12. JPQL语法基础 263
    6.4.13. JPA常用注解 269
    6.5. 本章小结 271
  7. 开发 Spring Boot Gradle插件实现自动化生成代码脚手架 271
    7.1. Gradle 简介 272
    7.1.1. Gradle 概述 272
    7.1.2. Gradle 特性 273
    7.1.3. Gradle 构建生命周期 273
    7.1.4. Gradle 仓库 274
    7.1.5. 约定优于配置 275
    7.1.6. 发布 Gradle 项目生成的构件 275
    7.1.7. Groovy 特点简介 276
    7.2. Gradle 插件 276
    7.2.1. Gradle 插件概述 277
    7.2.2. 常用 Gradle插件 277
    7.2.3. java 插件 277
    7.2.4. application 插件 280
    7.3. 项目实战 281
    7.3.1. 创建项目 281
    7.3.2. 添加依赖 287
    7.3.3. 配置上传本地Maven仓库 287
    7.3.4. 实现 Plugin 288
    7.3.5. 添加插件属性配置 296
    7.3.6. 运行测试 297
    7.3.7. 在项目中使用kor插件 300
    7.4. 本章小结 304
  8. Spring Boot 使用 Spring MVC 和FreeMarker开发 Web 应用 305
    8.1. Spring MVC 简介 305
    8.1.1. Servlet 概述 305
    8.1.2. MVC 简介 310
    8.1.3. Spring、Spring MVC 与 Spring Boot 2.0 312
    8.1.4. Spring MVC 框架 313
    8.2. Spring MVC 常用注解 317
    8.3. 使用FreeMarker模板引擎 319
    8.3.1. FreeMarker简介 319
    8.3.2. 实现一个分页查询页面 320
    8.4. 本章小结 330
  9. Spring Boot 自定义 SpringMVC配置 331
    9.1. 配置父类WebMvcConfigurationSupport 331
    9.2. 静态资源处理配置类ResourceHandler 334
    9.3. 拦截器配置类HandlerInterceptor 335
    9.4. 跨域支持配置类CorsRegistry 337
    9.5. 添加视图控制器ViewController 338
    9.6. 消息转换器MessageConverter 338
    9.7. 数据格式化器 Formatter 340
    9.8. 视图解析器ViewResolver配置 340
    9.9. 全局异常处理ExceptionHandler 341
    9.9.1. 使用 @ControllerAdvice + @ExceptionHandler实现统一异常处理 342
    9.9.2. 实现 HandlerExceptionResolver 接口 344
    9.10. 定制与优化内置Tomcat容器 347
    9.11. 定制 Spring Boot 应用程序启动 Banner 351
    9.12. 本章小结 356
  10. Spring Boot注册 Servlet、Filter 和 Listener 356
    10.1. 创建项目 356
    10.2. 注册 Servlet 358
    10.3. 注册 Filter 362
    10.4. 注册 Listener 369
    10.5. 本章小结 370
  11. Spring Boot AOP 面向切面编程 371
    11.1. AOP 简介 371
    11.2. AOP 核心概念 372
    11.3. Spring AOP介绍 374
    11.4. 项目实战:实现日志切面 375
    11.4.1. 创建项目 375
    11.4.2. 添加 aop 依赖aspectjweaver 382
    11.4.3. 切面逻辑实现 384
    11.4.4. @Pointcut匹配表达式 385
    11.4.5. 运行测试 386
    11.5. 本章小结 387
  12. Spring Boot 使用 AOP + Filter实现用户登录鉴权与权限控制 387
    12.1. 系统整体架构 387
    12.2. 创建工程 389
    12.3. 数据库表结构设计 394
    12.4. 用户登录逻辑 395
    12.5. 登录态鉴权过滤器 401
    12.5.1. 用户鉴权逻辑 401
    12.5.2. 运行测试 404
    12.5.3. 页面展示用户名 406
    12.6. AOP实现用户权限管理 407
    12.6.1. 功能简介 407
    12.6.2. 实现权限控制 407
    12.6.3. 无权限页面 410
    12.6.4. Pointcut切入点配置 410
    12.6.5. 运行测试 411
    12.7. 用户注册 412
    12.7.1. 用户注册界面 412
    12.7.2. 模板代码 412
    12.7.3. 前端js代码 413
    12.7.4. 后端注册接口 413
    12.7.5. 数据后端校验 414
    12.7.6. 获取数据校验结果 418
    12.7.7. 运行测试 419
    12.8. 本章小结 424
  13. Spring Boot 使用 Security 实现系统的安全认证与权限控制 424
    13.1. Spring Security 简介 425
    13.1.1. Spring Security概述 425
    13.1.2. 基于Form表单登陆认证 426
    13.2. Spring Security 核心组件 427
    13.2.1. SecurityContextHolder与Security Context 427
    13.2.2. 获取当前用户的信息 428
    13.2.3. 认证信息类Authentication 429
    13.2.4. 认证管理器AuthenticationManager 430
    13.2.5. 基于数据库的认证DaoAuthenticationProvider 432
    13.2.6. UserDetails与UserDetailsService 433
    13.3. 项目实战 435
    13.3.1. 初阶 Security: 默认认证用户名密码 435
    13.3.2. 中阶 Security:内存用户名密码认证 441
    13.3.3. 角色权限控制 445
    13.3.4. 进阶 Security: 基于数据库的用户和角色权限 453
    13.4. 本章小结 477
  14. React.js + Spring Boot 开发前后端分离项目 477
    14.1. 前后端分离架构 478
    14.1.1. 前端简史 478
    14.1.2. ECMAScript的历史 478
    14.1.3. 从后端走向前端 479
    14.1.4. 前后端分离架构 480
    14.2. 项目实战 481
    14.2.1. 系统功能介绍 482
    14.2.2. 实现登陆后端接口 483
    14.2.3. 实现登陆前端页面 486
    14.2.4. 用户登录状态接口 488
    14.2.5. 实现列表展示后端接口 490
    14.2.6. 实现列表展示前端页面 491
    14.2.7. 前后端集成配置 492
    14.2.8. 前后端联调测试 492
    14.3. 本章小结 495
  15. Spring Boot 定时任务 496
    15.1. 定时任务概述 496
    15.2. 静态定时任务 496
    15.3. Cron 表达式 498
    15.3.1. Cron简介 498
    15.3.2. Cron 表达式字段范围 499
    15.3.3. Cron 表达式特殊字符 499
    15.3.4. 常用的 Cron 表达式 500
    15.4. 动态定时任务 501
    15.4.1. 实现SchedulingConfigurer接口 501
    15.4.2. 从数据库中读取 cron 表达式值 502
    15.4.3. 数据库初始化数据 502
    15.4.4. 多线程执行 503
    15.4.5. 添加多个任务 504
    15.5. 本章小结 505
  16. Spring Boot 集成 Web Flux 开发 Reactive Web 应用 506
    16.1. 响应式宣言 506
    16.2. Spring 5 响应式Web框架架构图 506
    16.3. 项目实战 508
    16.3.1. 创建项目 508
    16.3.2. 项目结构 511
    16.3.3. 领域实体层 513
    16.3.4. 服务层 514
    16.3.5. 控制器路由层 515
    16.3.6. Reactive Web服务器配置 516
    16.3.7. 项目启动入口类 517
    16.3.8. 启动运行 517
    16.3.9. 测试输出 518
    16.4. 本章小结 519
  17. Spring Boot 应用监控:Actuator与 Admin 519
    17.1. Actuator简介 519
    17.2. 启用 Actuator 520
    17.3. 揭秘Endpoint端点 522
    17.3.1. /actuator获取actuator 列表 522
    17.3.2. /beans获取 Bean 装配信息 524
    17.3.3. /conditions获取自动配置条件信息 526
    17.3.4. /configprops获取配置属性信息 527
    17.3.5. /env系统运行环境信息 529
    17.3.6. /info 应用基本信息 532
    17.3.7. /health 获取应用健康信息 532
    17.3.8. /loggers系统日志信息 533
    17.3.9. /threaddump系统线程转储信息 534
    17.3.10. /metrics系统度量指标列表 536
    17.3.11. /scheduledtasks系统定时任务信息 537
    17.3.12. /trace系统请求跟踪 538
    17.3.13. /mappings系统请求 URL 映射信息 539
    17.3.14. 启用和禁用端点 541
    17.4. 自定义Actuator Endpoint 543
    17.4.1. Endpoint接口简介 543
    17.4.2. 实现Endpoint接口 547
    17.4.3. 继承AbstractEndpoint抽象类 549
    17.4.4. 实现健康指标接口HealthIndicator 554
    17.4.5. 实现度量指标接口PublicMetrics 555
    17.4.6. SystemPublicMetrics成员方法简介 556
    17.4.7. 使用 AOP 实现CounterService、GaugeService接口统计方法执行数据 559
    17.5. 使用Spring Boot Admin可视化 Actuator 监控数据 564
    17.5.1. Spring Boot Admin简介 564
    17.5.2. 工作原理简介 568
    17.5.3. 创建Spring Boot Admin Server 项目 569
    17.5.4. 在 Client 端的 Spring Boot项目中配置使用Admin Server 571
    17.6. 本章小结 579
  18. Spring Boot 应用的测试 580
    18.1. 项目准备工作 580
    18.1.1. 创建项目 580
    18.1.2. 导入项目到 IDEA 581
    18.1.3. 设计项目目录结构 581
    18.2. 项目配置 582
    18.2.1. Gradle构建配置文件 582
    18.2.2. 项目属性文件配置 584
    18.3. 项目代码开发 584
    18.3.1. Entity 层代码 584
    18.3.2. Dao 层代码 585
    18.3.3. Service 层代码 585
    18.3.4. Controller 层代码 586
    18.4. 项目分层测试 586
    18.4.1. 测试代码目录结构 587
    18.4.2. Dao 层测试 588
    18.4.3. Service 层测试 589
    18.4.4. 使用 Mockito 测试 Service 层代码 590
    18.4.5. Controller 层测试 592
    18.4.6. JSON接口数据的测试断言 596
    18.5. 本章小结 600
  19. 使用 Docker 构建部署运行 Spring Boot 应用 600
    19.1. 创建测试项目 600
    19.2. 项目打包成可执行 jar 603
    19.3. 定制配置文件启动应用 606
    19.4. 项目打包成 war 包 608
    19.5. 生产运维 610
    19.5.1. 查看JVM参数的值 610
    19.5.2. 应用重启 611
    19.6. 使用 Docker 构建部署运行Spring Boot应用 611
    19.6.1. Docker 简介 611
    19.6.2. 环境搭建 613
    19.7. Spring Boot 项目 Docker化实战 617
    19.7.1. 添加 docker 构建插件 618
    19.7.2. 配置 Dockerfile 文件创建自定义的镜像 618
    19.7.3. Dockerfile配置说明 620
    19.7.4. 构建自定义的应用 Docker镜像 623
    19.7.5. 启动 Docker 应用镜像运行 623
    19.7.6. 端口映射 624
    19.7.7. 运行测试 626
    19.8. 本章小结 627
  20. 附录 I : Spring 5.0 新特性 628
  21. 附录 II : Spring Boot 2.0 新特性 641
    21.1.1. Kotlin 特性支持 641
    21.1.2. Spring Boot 2.0.0 M1 Release Notes 642
    21.1.3. Spring Boot 2.0.0 M2 Release Notes 648
    21.1.4. Spring Boot 2.0.0 M3 Release Notes 651
    21.1.5. Spring Boot 2.0.0 M4 Release Notes 652
    21.1.6. Spring Boot 2.0.0 M5 Release Notes 655
    21.1.7. Spring Boot 2.0.0 M6 Release Notes 657
    21.1.8. Spring Boot 2.0.0 M7 Release Notes 660
  22. 附录 III: Spring Cloud 简介 664
  23. 附录 IV:最新IntelliJ IDEA 2017.3版本特性 666
  24. 附录 V:Spring Boot CLI 的 spring init 命令行支持项 667
相关文章
|
29天前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
50 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
前端开发 安全 Java
【Spring】Spring Boot项目创建和目录介绍
【Spring】Spring Boot项目创建和目录介绍
81 2
|
1月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
49 2
|
5月前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
53 2
|
5月前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
59 2
|
5月前
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
417 1
|
5月前
springboot2.4.5使用pagehelper分页插件
springboot2.4.5使用pagehelper分页插件
145 0
|
5月前
|
缓存 运维 Java
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
48 0
|
6月前
|
XML 安全 Java
深入实践springboot实战 蓄势待发 我不是雷锋 我是知识搬运工
springboot,说白了就是一个集合了功能的大类库,包括springMVC,spring,spring data,spring security等等,并且提供了很多和可以和其他常用框架,插件完美整合的接口(只能说是一些常用框架,基本在github上能排上名次的都有完美整合,但如果是自己写的一个框架就无法实现快速整合)。
|
3月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
下一篇
无影云桌面