作者 |
章为忠 等 |
丛书名 |
出版社 |
机械工业出版社 |
ISBN |
9782111151738 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8084734 - Spring Boot从入门到实战--------------------------- 本书针对Spring Boot 2.x以上版本,采用“知识点+实例”的形式编写。本书共17章,重点讲解Spring Boot企业应用开发所涉及的知识点,同时针对某些常见的应用场景提供了完整的解决方案,带领读者从零开始构建一个完整的Spring Boot项目。 本书内容紧扣互联网企业的实际需求,从Sping知识讲到Spring Boot的企业级开发,对于Java开发人员,尤其是初学Spring Boot的人员,以及从传统Spring转向Spring Boot开发的技术人员具有很高的参考价值。 ---------------------------8071112 - Spring Boot技术内幕:架构设计与实现原理--------------------------- 本书深入分析了 SpringBoot源代码,教读者从源代码角度了解 SpringBoot的架构、设计思想和重要功能模块的实现原理。 全书共分为三个部分: 第一部分 准备篇(第1章):粗略介绍源码阅读环境的准备、 SpringBoot的整体目录结构、 SpringBoot的设计目标和理念和 SpringBoot的整体框架。 第二部 实现篇(第2~14章)这部分内容是本书的核心,1.5节中会列出SpringBoot的各个核心功能模块,这一部分会逐一去分析这些功能模块的源码,通过源码去讲解各个功能模块的架构、设计思想和实现原理,每个功能模块 用1章的篇幅进行介绍。 第三部分 扩展篇(第15~17章)主要讲解 SpringBoot与周边其他技术的结合,回归到了应用层面,但是具体内容都属于比较高级的知识点,比如SpringBoot打包部署、SpringBoot应用监控、SpringBoot安全(Security)支持等。 |
目录 |
[套装书具体书目] 8071112 - Spring Boot技术内幕:架构设计与实现原理 - 9787111657088 - 机械工业出版社 - 定价 79 8084734 - Spring Boot从入门到实战 - 9787111694021 - 机械工业出版社 - 定价 109 ---------------------------8084734 - Spring Boot从入门到实战--------------------------- 前言 第1章 初识Spring Boot ........................................ 1 1.1 Spring Boot是什么 ........................................ 1 1.2 Spring Boot的优点 ........................................ 2 1.3 为什么学习Spring Boot ........................................ 3 1.4 什么是“约定优于配置” ........................................ 4 1.5 Spring、Spring Boot和Spring Cloud的关系 ................................... 4 1.6 本章小结 ........................................ 5 第2章 开始Spring Boot之旅 ........................................ 6 2.1 第一个Spring Boot项目:helloworld ........................................ 6 2.1.1 创建Spring Boot项目 ........................................ 6 2.1.2 项目结构 ........................................ 7 2.1.3 pom.xml详解 ........................................ 9 2.1.4 第一个helloworld程序 ........................................ 11 2.2 单元测试 ........................................ 12 2.2.1 Spring Boot集成单元测试 ........................................ 12 2.2.2 测试Service方法 ........................................ 13 2.2.3 测试Controller接口方法 ........................................ 14 2.2.4 常用的单元测试注解 ........................................ 16 2.3 开发环境热部署 ........................................ 17 2.3.1 devtools实现原理 ........................................ 17 2.3.2 配置开发环境热部署 ........................................ 17 2.4 本章小结 ........................................ 18 2.5 本章练习 ........................................ 19 第3章 Spring Boot的系统配置 ........................................ 20 3.1 系统配置文件 ........................................ 20 3.1.1 application.properties ........................................ 20 3.1.2 application.yml ........................................ 21 3.1.3 Properties与YML配置文件的区别 ....................................... 23 3.1.4 实战:自定义系统的启动图案 ........................................ 23 3.2 自定义配置项 ........................................ 25 3.2.1 @Value ........................................ 25 3.2.2 Environment ........................................ 26 3.2.3 @ConfigurationProperties ........................................ 26 3.2.4 使用配置文件注意事项 ........................................ 28 3.3 其他配置 ........................................ 28 3.3.1 随机数 ........................................ 28 3.3.2 配置引用 ........................................ 29 3.4 日志配置 ........................................ 30 3.4.1 Spring Boot日志简介 ........................................ 30 3.4.2 配置日志格式 ........................................ 31 3.4.3 日志输出级别 ........................................ 31 3.4.4 保存日志文件 ........................................ 32 3.5 实战:实现系统多环境配置 ........................................ 33 3.5.1 多环境的配置 ........................................ 33 3.5.2 多环境的切换 ........................................ 34 3.6 本章小结 ........................................ 36 3.7 本章练习 ........................................ 36 第4章 Web开发 ........................................ 37 4.1 Web开发简介 ........................................ 37 4.1.1 Web入门 ........................................ 37 4.1.2 @Controller和@RestController ........................................ 39 4.1.3 @RequestMapping ........................................ 40 4.1.4 @ResponseBody ........................................ 41 4.2 URL映射 ........................................ 42 4.2.1 URL路径匹配 ........................................ 42 4.2.2 Method匹配 ........................................ 43 4.2.3 consumes和produces匹配 ........................................ 43 4.2.4 params和header匹配 ........................................ 44 4.3 参数传递 ........................................ 44 4.3.1 @PathVariable ........................................ 45 4.3.2 使用Bean对象接收参数 ........................................ 46 4.3.3 @RequsetBody接收JSON数据 ........................................ 47 4.3.4 @ModelAttribute ........................................ 47 4.3.5 ModelAndView对象 ........................................ 48 4.4 数据验证 ........................................ 49 4.4.1 Hibernate Validator简介 ........................................ 49 4.4.2 数据校验 ........................................ 50 4.4.3 自定义校验 ........................................ 53 4.5 拦截器 ........................................ 54 4.5.1 应用场景 ........................................ 54 4.5.2 HandlerInterceptor简介 ........................................ 54 4.5.3 使用HandlerInterceptor实现拦截器 ........................................ 55 4.6 过滤器 ........................................ 56 4.6.1 过滤器简介 ........................................ 56 4.6.2 使用FilterRegistrationBean实现过滤器 ........................................ 57 4.7 Web配置 ........................................ 58 4.7.1 WebMvcConfigurer简介 ........................................ 58 4.7.2 跨域访问 ........................................ 58 4.7.3 数据转换配置 ........................................ 59 4.7.4 静态资源 ........................................ 59 4.7.5 跳转指定页面 ........................................ 60 4.8 实战:实现优雅的数据返回 ........................................ 60 4.8.1 为什么要统一返回值 ........................................ 60 4.8.2 统一数据返回 ........................................ 61 4.8.3 全局异常处理 ........................................ 66 4.9 本章小结 ........................................ 67 4.10 本章练习 ........................................ 68 第5章 Thymeleaf模板引擎 ........................................ 69 5.1 Thymeleaf入门 ........................................ 69 5.1.1 Thymeleaf简介 ........................................ 69 5.1.2 Spring Boot使用Thymeleaf ........................................ 70 5.1.3 Thymeleaf常用的配置参数 ........................................ 72 5.2 Thymeleaf表达式 ........................................ 73 5.2.1 变量表达式 ........................................ 73 5.2.2 选择或星号表达式 ........................................ 73 5.2.3 URL表达式 ........................................ 74 5.2.4 文字国际化表达式 ........................................ 75 5.3 表达式的语法 ........................................ 76 5.3.1 赋值和拼接 ........................................ 76 5.3.2 条件判断 ........................................ 77 5.3.3 switch ........................................ 78 5.3.4 循环遍历 ........................................ 79 5.3.5 运算符 ........................................ 81 5.4 Thymeleaf的高级用法 ........................................ 82 5.4.1 内联 ........................................ 82 5.4.2 内置对象 ........................................ 85 5.4.3 内嵌变量 ........................................ 86 5.5 Thymeleaf页面布局 ........................................ 88 5.5.1 引入代码片段 ........................................ 88 5.5.2 片段表达式语法规范 ........................................ 89 5.5.3 可参数化片段 ........................................ 90 5.5.4 实战:实现页面整体布局 ........................................ 90 5.6 本章小结 ........................................ 93 5.7 本章练习 ........................................ 93 第6章 构建RESTful服务 ........................................ 94 6.1 RESTful简介 ........................................ 94 6.1.1 什么是RESTful ........................................ 94 6.1.2 HTTP Method ........................................ 95 6.1.3 HTTP状态码 ........................................ 96 6.1.4 REST与SOAP的区别 ........................................ 97 6.2 构建RESTful应用接口 ........................................ 97 6.2.1 Spring Boot对RESTful的支持 ........................................ 98 6.2.2 Spring Boot实现RESTful API ........................................ 99 6.3 使用Swagger生成Web API文档 ........................................ 102 6.3.1 什么是Swagger ........................................ 102 6.3.2 使用Swagger生成Web API文档 ........................................ 102 6.3.3 为Swagger添加token参数........................................ 105 6.3.4 Swagger常用注解 ........................................ 107 6.4 实战:实现Web API版本控制 ........................................ 108 6.4.1 为什么进行版本控制 ........................................ 108 6.4.2 Web API的版本控制 ........................................ 108 6.5 本章小结 ........................................ 112 6.6 本章练习 ........................................ 113 第7章 JdbcTemplate数据连接模板 ........................................ 114 7.1 JdbcTemplate入门 ........................................ 114 7.1.1 JdbcTemplate简介 ........................................ 114 7.1.2 Spring Boot集成JdbcTemplate........................................ 115 7.2 使用JdbcTemplate操作数据库 ........................................ 117 7.2.1 实现学生数据管理功能 ........................................ 117 7.2.2 复杂查询 ........................................ 120 7.3 实战:实现JdbcTemplate多数据源 ........................................ 123 7.3.1 什么是多数据源 ........................................ 123 7.3.2 配置JdbcTemplate多数据源 ........................................ 123 7.4 本章小结 ........................................ 126 7.5 本章练习 ........................................ 126 第8章 数据库持久层框架MyBatis ........................................ 127 8.1 MyBatis简介 ........................................ 127 8.1.1 什么是ORM ........................................ 127 8.1.2 什么是MyBatis........................................ 128 8.1.3 MyBatis的核心概念 ........................................ 128 8.1.4 MyBatis的启动流程 ........................................ 129 8.2 Spring Boot构建MyBatis应用程序 ........................................ 129 8.2.1 MyBatis-Spring-Boot-Starter简介........................................ 130 8.2.2 Spring Boot集成MyBatis ........................................ 130 8.2.3 实战:实现学生信息管理模块 ........................................ 133 8.2.4 MyBatis Generator插件 ........................................ 136 8.3 使用XML配置文件实现数据库操作........................................ 139 8.3.1 SQL映射文件 ........................................ 139 8.3.2 定义SQL语句 ........................................ 140 8.3.3 结果映射 ........................................ 143 8.3.4 关联关系 ........................................ 145 8.3.5 SQL代码片段 ........................................ 149 8.3.6 动态SQL拼接 ........................................ 150 8.3.7 格式化输出 ........................................ 151 8.4 使用MyBatis注解实现数据库操作 ........................................ 153 8.4.1 XML和注解的异同 ........................................ 154 8.4.2 使用MyBatis注解实现数据查询 ........................................ 154 8.4.3 参数传递 ........................................ 155 8.4.4 结果映射 ........................................ 157 8.4.5 实战:使用注解方式实现学生信息管理 ...................................... 157 8.5 动态SQL和分页 ........................................ 158 8.5.1 动态SQL语句 ........................................ 159 8.5.2 分页查询 ........................................ 160 8.5.3 多数据源配置 ........................................ 162 8.6 本章小结 ........................................ 165 8.7 本章练习 ........................................ 165 第9章 认识JPA ........................................ 166 9.1 JPA入门 ........................................ 166 9.1.1 JPA简介 ........................................ 166 9.1.2 Spring Data对JPA的支持 ........................................ 167 9.2 在Spring Boot项目中使用JPA ........................................ 168 9.2.1 集成Spring Data JPA ........................................ 168 9.2.2 JpaRepository简介 ........................................ 171 9.2.3 实战:实现人员信息管理模块 ........................................ 172 9.3 简单查询 ........................................ 174 9.3.1 预生成方法 ........................................ 174 9.3.2 自定义简单查询 ........................................ 174 9.3.3 自定义SQL查询 ........................................ 176 9.3.4 已命名查询 ........................................ 177 9.4 复杂查询 ........................................ 179 9.4.1 分页查询 ........................................ 179 9.4.2 排序和限制 ........................................ 180 9.4.3 动态条件查询 ........................................ 181 9.5 实体关系映射 ........................................ 183 9.5.1 关系映射注解 ........................................ 183 9.5.2 一对一 ........................................ 184 9.5.3 一对多和多对一 ........................................ 186 9.5.4 多对多 ........................................ 188 9.6 本章小结 ........................................ 190 9.7 本章练习 ........................................ 191 第10章 搞定定时任务 ........................................ 192 10.1 @Scheduled定时任务 ........................................ 192 10.1.1 使用@Scheduled注解实现定时任务 ........................... 192 10.1.2 时间参数设置 ........................................ 193 10.1.3 多线程定时任务 ........................................ 194 10.2 Cron表达式 ........................................ 195 10.2.1 Cron表达式的语法 ........................................ 195 10.2.2 常用表达式 ........................................ 197 10.3 Quartz定时任务 ........................................ 198 10.3.1 Quartz简介 ........................................ 198 10.3.2 简单定时任务 ........................................ 199 10.3.3 Cron定时任务 ........................................ 201 10.4 实战:实现分布式定时任务 ........................................ 202 10.4.1 分布式任务应用场景 ........................................ 202 10.4.2 使用Quartz实现分布式定时任务 ........................................ 203 10.5 本章小结 ........................................ 212 10.6 本章练习 ........................................ 212 第11章 数据缓存Redis实现高并发 ........................................ 213 11.1 Redis入门 ........................................ 213 11.1.1 Redis简介 ........................................ 213 11.1.2 Redis数据类型 ........................................ 214 11.2 Spring Boot集成Redis实现数据缓存 ...................................... 214 11.2.1 Spring Boot对Redis的支持 ........................................ 215 11.2.2 RedisTemplate ........................................ 216 11.2.3 Spring Boot项目中实现Redis数据缓存 .................................... 217 11.2.4 Redis缓存的常用操作 ........................................ 218 11.3 操作Redis数据结构 ........................................ 221 11.3.1 String ........................................ 221 11.3.2 Hash ........................................ 222 11.3.3 List ........................................ 223 11.3.4 Set ........................................ 223 11.3.5 ZSet ........................................ 224 11.4 实战:实现数据缓存框架 ........................................ 225 11.4.1 数据缓存的原理 ........................................ 225 11.4.2 使用Redis实现数据缓存框架 ........................................ 226 11.4.3 常用缓存注解 ........................................ 228 11.5 实战:实现Session共享 ........................................ 230 11.5.1 分布式Session共享解决方案 ........................................ 230 11.5.2 使用Redis快速实现Session共享 ........................................ 231 11.6 本章小结 ........................................ 233 11.7 本章练习 ........................................ 233 第12章 RabbitMQ消息队列 ........................................ 234 12.1 RabbitMQ入门 ........................................ 234 12.1.1 RabbitMQ简介 ........................................ 234 12.1.2 AMQP ........................................ 235 12.1.3 RabbitMQ组件功能 ........................................ 236 12.1.4 交换机 ........................................ 236 12.2 Spring Boot集成RabbitMQ ........................................ 239 12.2.1 发送和接收消息 ........................................ 239 12.2.2 发送和接收实体对象 ........................................ 241 12.3 消息发送模式 ........................................ 243 12.3.1 简单队列模式 ........................................ 243 12.3.2 工作队列模式 ........................................ 245 12.3.3 路由模式 ........................................ 246 12.3.4 广播模式 ........................................ 249 12.3.5 发布订阅模式 ........................................ 252 12.4 消息确认机制 ........................................ 256 12.4.1 消息确认的场景 ........................................ 256 12.4.2 生产者消息确认机制 ........................................ 256 12.4.3 Return机制 ........................................ 260 12.4.4 消费端ACK和NACK机制 ........................................ 262 12.5 实战:消息的100%可靠性发送 ........................................ 264 12.5.1 应用场景 ........................................ 264 12.5.2 技术方案 ........................................ 265 12.5.3 实现消息的100%可靠性发送 ........................................ 266 12.6 本章小结 ........................................ 269 12.7 本章练习 ........................................ 269 第13章 Elasticsearch搜索引擎 ........................................ 270 13.1 Elasticsearch简介 ........................................ 270 13.1.1 认识Elasticsearch ........................................ 270 13.1.2 Elasticsearch数据结构 ........................................ 271 13.1.3 Elasticsearch客户端 ........................................ 272 13.2 Spring Boot集成Elasticsearch搜索引擎 ................................... 273 13.2.1 Spring Boot对Elasticsearch的支持 ........................................ 273 13.2.2 Spring Boot操作Elasticsearch的方式 ...................................... 273 13.2.3 在Spring Boot项目中集成Elasticsearch .................................... 274 13.3 使用ElasticsearchRepository操作ES ........................................ 277 13.3.1 ElasticsearchRepository简介 ........................................ 277 13.3.2 创建文档 ........................................ 278 13.3.3 查询文档 ........................................ 278 13.3.4 更新文档 ........................................ 279 13.3.5 删除文档 ........................................ 279 13.4 Elasticsearch复杂查询 ........................................ 280 13.4.1 分页查询 ........................................ 280 13.4.2 使用QueryBuilder构建查询条件 ................................. 281 13.5 使用ElasticsearchRestTemplate操作ES ................................ 283 13.5.1 ElasticsearchRestTemplate简介 ..................................... 283 13.5.2 创建文档 ........................................ 284 13.5.3 更新文档 ........................................ 285 13.5.4 删除文档 ........................................ 285 13.5.5 查询文档 ........................................ 286 13.5.6 高亮显示 ........................................ 288 13.6 聚合查询 ........................................ 288 13.6.1 什么是聚合 ........................................ 288 13.6.2 实现统计查询 ........................................ 289 13.6.3 实现聚合查询 ........................................ 290 13.7 本章小结 ........................................ 292 13.8 本章练习 ........................................ 292 第14章 Security安全控制 ........................................ 293 14.1 Security入门 ........................................ 293 14.1.1 Security简介 ........................................ 293 14.1.2 Security的核心组件 ........................................ 294 14.1.3 Security验证流程 ........................................ 295 14.2 Security认证 ........................................ 297 14.2.1 Spring Boot集成Security ........................................ 297 14.2.2 登录认证 ........................................ 298 14.2.3 自定义登录页面 ........................................ 300 14.3 Security授权 ........................................ 302 14.3.1 角色权限 ........................................ 302 14.3.2 方法级别的权限控制 ........................................ 305 14.4 实战:基于数据库的权限控制 ........................................ 306 14.4.1 数据库结构设计 ........................................ 306 14.4.2 实现角色权限控制 ........................................ 309 14.5 本章小结 ........................................ 321 14.6 本章练习 ........................................ 322 第15章 Actuator应用监控 ........................................ 323 15.1 Actuator简介 ........................................ 323 15.1.1 Actuator是什么 ........................................ 323 15.1.2 Spring Boot集成Actuator应用监控框架 .................................... 324 15.2 Actuator监控端点 ........................................ 325 15.2.1 监控端点 ........................................ 325 15.2.2 配置监控端点 ........................................ 326 15.2.3 自定义端点 ........................................ 326 15.3 监控信息 ........................................ 327 15.3.1 健康状态 ........................................ 328 15.3.2 应用基本信息 ........................................ 329 15.3.3 查看Spring容器管理的Bean........................................ 329 15.3.4 自动配置状态 ........................................ 330 15.3.5 配置属性 ........................................ 331 15.3.6 系统环境配置信息 ........................................ 331 15.3.7 JVM堆信息 ........................................ 333 15.3.8 HTTP跟踪 ........................................ 334 15.3.9 性能监控 ........................................ 335 15.4 实战:使用Spring Boot Admin实现运维监控平台 ........................ 338 15.4.1 什么是Spring Boot Admin ........................................ 338 15.4.2 创建服务器端 ........................................ 339 15.4.3 创建客户端 ........................................ 340 15.5 本章小结 ........................................ 342 15.6 本章练习 ........................................ 342 第16章 打包、发布与部署 ........................................ 343 16.1 Spring Boot的打包、发布与部署 ........................................ 343 16.1.1 项目打包 ........................................ 343 16.1.2 运行部署 ........................................ 348 16.2 使用Docker部署Spring Boot项目 ........................................ 350 16.2.1 Docker简介 ........................................ 350 16.2.2 Spring Boot项目添加Docker支持 ........................................ 352 16.2.3 发布Docker镜像........................................ 354 16.3 本章小结 ........................................ 356 16.4 本章练习 ........................................ 356 第17章 综合应用实战:学生信息管理系统 ................................... 357 17.1 系统功能设计 ........................................ 357 17.1.1 功能设计 ........................................ 357 17.1.2 技术选型 ........................................ 357 17.2 构建系统 ........................................ 358 17.2.1 设计数据库 ........................................ 358 17.2.2 框架搭建 ........................................ 359 17.3 实现模块功能 ........................................ 368 17.3.1 数据访问层 ........................................ 368 17.3.2 业务逻辑层 ........................................ 370 17.3.3 控制层 ........................................ 373 17.3.4 前端页面 ........................................ 376 17.4 系统演示 ........................................ 387 17.5 本章小结 ........................................ 388 ---------------------------8071112 - Spring Boot技术内幕:架构设计与实现原理--------------------------- 前 言 第一部分 准备篇 第1章 阅读代码前的准备 2 1.1 获取和调试Spring Boot源代码 2 1.1.1 获取Spring Boot的源代码 2 1.1.2 调试Spring Boot的源代码 3 1.2 Spring Boot源代码的结构 3 1.2.1 Spring Boot的整体项目结构 4 1.2.2 spring-boot-project项目结构 5 1.3 源代码阅读工具 5 1.4 Spring Boot的设计理念和目标 6 1.4.1 设计理念 7 1.4.2 设计目标 7 1.5 Spring Boot的整体架构 7 第二部分 原理篇 第2章 Spring Boot核心运行原理 10 2.1 核心运行原理 10 2.2 运作原理源码解析之@EnableAuto-Configuration 11 2.2.1 入口类和@SpringBootApplication注解 11 2.2.2 注解@EnableAutoConfiguration功能解析 14 2.3 AutoConfigurationImportSelector源码解析 15 2.3.1 @Import注解 16 2.3.2 ImportSelector接口 16 2.3.3 AutoConfigurationImportSelector功能概述 17 2.3.4 @EnableAutoConfiguration自动配置开关 18 2.3.5 @EnableAutoConfiguration加载元数据配置 19 2.3.6 @EnableAutoConfiguration加载自动配置组件 21 2.3.7 @EnableAutoConfiguration排除指定组件 24 2.3.8 @EnableAutoConfiguration过滤自动配置组件 25 2.3.9 @EnableAutoConfiguration事件注册 32 2.4 @Conditional条件注解 33 2.4.1 认识条件注解 33 2.4.2 条件注解的衍生注解 34 2.5 实例解析 39 2.6 小结 41 第3章 Spring Boot构造流程源码分析 42 3.1 SpringApplication的初始化简介 42 3.2 SpringApplication实例化流程 43 3.3 SpringApplication构造方法参数 44 3.4 Web应用类型推断 45 3.5 ApplicationContextInitializer加载 47 3.5.1 源码解析 47 3.5.2 实例讲解 49 3.6 ApplicationListener加载 50 3.7 入口类推断 51 3.8 SpringApplication的定制化配置 52 3.8.1 基础配置 52 3.8.2 配置源配置 53 3.9 小结 54 第4章 Spring Boot运行流程源码分析 55 4.1 run方法核心流程 55 4.2 SpringApplicationRunListener监听器 57 4.2.1 监听器的配置与加载 57 4.2.2 SpringApplicationRunListener源码解析 59 4.2.3 实现类EventPublishingRun-Listener 60 4.2.4 自定义SpringApplicationRun-Listener 62 4.3 初始化ApplicationArguments 63 4.4 初始化ConfigurableEnvironment 63 4.4.1 获取或创建环境 65 4.4.2 配置环境 66 4.5 忽略信息配置 68 4.6 打印Banner 68 4.7 Spring应用上下文的创建 69 4.8 Spring应用上下文的准备 70 4.8.1 应用上下文准备阶段 71 4.8.2 应用上下文加载阶段 73 4.9 Spring应用上下文的刷新 75 4.10 调用ApplicationRunner和CommandLineRunner 77 4.11 小结 78 第三部分 内置组件篇 第5章 Spring Boot外化配置源码解析 80 5.1 外化配置简介 80 5.2 ApplicationArguments 参数处理 81 5.2.1 接口定义及初始化 81 5.2.2 使用实例 85 5.3 命令参数的获取 86 5.4 配置文件的加载 88 5.5 基于Profile的处理实现 93 5.6 综合实战 97 5.7 小结 102 第6章 Spring Boot Web应用源码解析 103 6.1 遗失的web.xml 103 6.2 Web应用的自动配置 104 6.2.1 DispatcherServlet自动配置 105 6.2.2 DispatcherServletRegistrationBean自动配置 108 6.3 Spring MVC的自动配置 111 6.3.1 ViewResolver解析 112 6.3.2 静态资源的支持 114 6.3.3 静态index.html 115 6.4 综合实战 117 6.5 小结 120 第7章 Spring Boot 内置Servlet容器源码解析 121 7.1 Web容器自动配置 121 7.1.1 Servlet Web服务器概述 121 7.1.2 自动配置源码分析 122 7.2 WebServer初始化过程 128 7.3 DispatcherServlet的加载过程 134 7.3.1 DispatcherServlet的获取 134 7.3.2 DispatcherServlet的加载 138 7.4 综合实战 140 7.5 小结 141 第8章 Spring Boot 数据库配置源码解析 142 8.1 自动配置注解解析 142 8.2 自动配置内部实现解析 150 8.2.1 EmbeddedDatabase-Configuration 151 8.2.2 PooledDataSource-Configuration 155 8.3 JdbcTemplateAutoConfiguration 157 8.4 异常案例分析 159 8.5 小结 159 第9章 Spring Boot 消息源码解析 160 9.1 JMS基础自动配置 160 9.1.1 JmsAutoConfiguration的注解 160 9.1.2 JmsAutoConfiguration内部实现 164 9.2 ActiveMQ自动配置 166 9.3 @JmsListener注解解析 173 9.4 小结 175 第10章 Spring Boot Cache源码解析 176 10.1 Cache简介 176 10.2 Cache自动配置 177 10.3 默认Cache配置 183 10.4 小结 188 第11章 Spring Boot 日志源码解析 189 11.1 LoggingApplicationListener的触发 189 11.2 LoggingApplicationListener的执行 191 11.2.1 ApplicationStartingEvent事件处理 192 11.2.2 ApplicationEnvironment-PreparedEvent事件处理 196 11.3 小结 203 第12章 实战:创建Spring Boot自动配置项目 204 12.1 自定义Spring Boot Starter项目 204 12.2 Starter测试使用 207 12.3 小结 208 第四部分 外置组件篇 第13章 Spring Boot单元测试 210 13.1 Spring Boot对单元测试的支持 210 13.2 常用单元测试注解 211 13.3 JUnit5单元测试示例 212 13.4 Web应用单元测试 214 13.5 MockMvc的自动配置 217 13.5.1 AutoConfigureMockMvc注解 217 13.5.2 MockMvcAutoConfiguration自动配置 219 13.6 小结 221 第14章 Spring Boot打包部署解析 222 14.1 Spring Boot的jar包 222 14.1.1 jar包的生成 222 14.1.2 jar包的结构 227 14.2 Launcher实现原理 227 14.2.1 JarLauncher 228 14.2.2 WarLauncher 232 14.3 小结 234 第15章 Spring Boot 应用监控解析 235 15.1 Actuator简介 235 15.2 Actuator自动配置 237 15.2.1 HealthEndpoint自动配置 237 15.2.2 HealthIndicator实现 240 15.3 Actuator端点展示 244 15.4 小结 247 第16章 Spring Boot Security支持 248 16.1 Security自动配置 248 16.2 SecurityAutoConfiguration详解 249 16.3 SecurityFilterAutoConfiguration详解 255 16.4 小结 257 |