新書推薦:
《
索恩丛书·北宋政治与保守主义:司马光的从政与思想(1019~1086)
》
售價:HK$
75.9
《
掌故家的心事
》
售價:HK$
85.8
《
农为邦本——农业历史与传统中国
》
售價:HK$
74.8
《
郊庙之外:隋唐国家祭祀与宗教 增订版 (三联·哈佛燕京学术丛书)
》
售價:HK$
105.6
《
小麦文明:“黄金石油”争夺战
》
售價:HK$
97.9
《
悬壶杂记全集:老中医多年临证经验总结(套装3册) 中医医案诊疗思路和处方药应用
》
售價:HK$
135.1
《
无法忍受谎言的人:一个调查记者的三十年
》
售價:HK$
63.8
《
战争社会学专论
》
售價:HK$
118.8
|
編輯推薦: |
本书以Spring Boot 3.0为基础,解读Spring Boot核心技术,包括核心知识点、技术原理、应用方式、与第三方主流技术集成的方法等,再到服务的测试、调试、部署和监控等,一站式学习和掌握Spring Boot核心技术。
全面
本书全面介绍了Spring Boot,覆盖Spring Boot所有主流知识点,包括基础入门、配置管理、Starter与自动配置、启动过程与扩展应用、Web核心应用、日志管理、数据访问、计划任务、缓存与息队列、调试与单元测试、打包与部署、监控与报警等。
全新
本书的讲解和实战均基于Spring Boot的主版本3.0.0,书中带有“Spring Boot 3.0新变化”“Spring Boot 3.0 ”等标识,方便读者对Spring Boot 3.0新特性和变更项有一个更清晰的认识,读者从Spring Boot 2.x迁移到Spring Boot 3.x也可以有一个对比参考。
实用
本书不但介绍了Spring Boot的理论知识,还提供了大量的底层原理分析,并为核心知识点、第三方主流技术的集成与应用提供了大量实战案例,理论和实践相结合,清
|
內容簡介: |
本书是一本针对Java开发人员的图书,旨在帮助Java开发人员掌握Spring Boot的基本使用,以及深入了解Spring Boot的应用及原理。
本书内容由浅入深、循序渐进,第1~5章介绍Spring Boot的基础知识(基础入门、配置管理、Starter、自动配置、启动过程与扩展应用、日志管理),第6~9章介绍Spring Boot的综合应用(Web、数据访问、计划任务、缓存、消息队列),第10~12章介绍Spring Boot应用的附加能力(调试、单元测试、打包、部署、监控、报警),全面覆盖了Spring Boot的核心知识要点。
本书涵盖了笔者多年的研究和实践经验,从中提炼出了核心知识要点,从Spring Boot的基本概念和基础实践入手,再通过大量的知识点分析及代码实践,详细介绍如何利用Spring Boot简化开发过程,提高开发效率。
|
關於作者: |
周红亮(英文名为John),具有多年编程开发和系统架构经验,在大型互联网公司担任过Java高级开发工程师、开发主管、系统架构师等职位。负责并参与过多个大型分布式系统的设计和研发、改造等,从中积累了大量的微服务系统架构经验。
作者同时也是微信公众号“Java技术栈(ID:javastack)”的主理人,笔名为“栈长”,关注并分享Java及IT行业技术,在公众号分享原创文章超过500篇,全网累积阅读达数千万,已帮助大量求职者进入BAT等大厂工作。
|
目錄:
|
第1章 Spring Boot基础入门
1.1 Spring Boot概述
1.1.1 诞生背景
1.1.2 基本介绍
1.1.3 核心思想
1.1.4 基本特性
1.1.5 核心模块
1.1.6 Spring Boot与Spring MVC、Spring之间的关系
1.2 Spring Boot安装集成
1.2.1 版本周期
1.2.2 支持版本
1.2.3 环境要求
1.2.4 集成方式
1.3 快速开发一个Spring Boot接口
1.3.1 生成项目
1.3.2 导入依赖
1.3.3 编写接口
1.3.4 启动应用
1.3.5 测试接口
1.4 快速使用Maven
1.4.1 基本介绍
1.4.2 使用方式
1.4.3 Gradle Wrapper
1.5 Spring Boot CLI
1.5.1 概述
1.5.2 安装方式
1.5.3 命令行自动补全
1.5.4 快速开始
1.6 开启Spring Boot之旅
第2章 Spring Boot配置管理
2.1 配置类
2.1.1 自定义配置类
2.1.2 导入配置
2.2 配置文件
2.2.1 application
2.2.2 bootstrap
2.2.3 配置文件类型
2.3 配置绑定
2.3.1 Spring中的配置绑定
2.3.2 参数绑定
2.3.3 构造器绑定
2.3.4 Bean配置绑定
2.3.5 参数类扫描
2.3.6 配置验证
2.4 外部化配置
2.4.1 配置源
2.4.2 配置优先级
2.4.3 命令行参数
2.5 导入配置
2.6 随机值配置
2.7 多文档配置
2.7.1 配置格式
2.7.2 激活多文档配置
2.8 Profile
2.8.1 默认的Profile
2.8.2 激活Profile
2.8.3 切换Profile
2.8.4 Profile分组
2.8.5 指定Profile配置文件
2.8.6 使用限制
2.9 加载机制
2.10 配置加密
2.10.1 概述
2.10.2 使用配置中心(支持自动解密)
2.10.3 使用数据库机制
2.10.4 使用自定义加/解密机制
2.10.5 Jasypt Spring Boot
2.11 配置迁移
2.11.1 迁移方案
2.11.2 实现原理
第3章 Spring Boot Starter与自动配置
3.1 概述
3.2 Starter的命名规范
3.3 Starter的分类
3.3.1 application starter
3.3.2 production starter
3.3.3 technical starter
3.4 自动配置
3.4.1 概述
3.4.2 命名规范
3.4.3 自动配置文件的加载原理
3.4.4 自动配置原理
3.4.5 自动配置报告
3.4.6 排除自动配置
3.4.7 替换自动配置
3.5 邮件Starter
3.5.1 概述
3.5.2 发邮件实践
3.6 自定义Starter
3.6.1 创建Starter工程
3.6.2 创建自动配置类
3.6.3 注册自动配置类(spring.factories)
3.6.4 使用Starter
3.6.5 注册自动配置类(新规范)
第4章 Spring Boot启动过程与扩展应用
4.1 启动入口
4.1.1 应用启动类
4.1.2 应用启动方法
4.1.3 启动引导类
4.2 关闭启动日志
4.3 启动失败分析
4.3.1 失败分析器
4.3.2 自定义失败分析器
4.4 全局懒加载
4.5 启动图案
4.5.1 默认图案
4.5.2 输出模式
4.5.3 图案实现类
4.5.4 自定义图案
4.6 启动事件和监听器
4.6.1 启动事件的顺序
4.6.2 自定义事件监听器
4.7 启动运行器
4.7.1 概述
4.7.2 使用方式
4.8 应用启动流程
4.8.1 实例化流程
4.8.2 启动流程
第5章 Spring Boot日志管理
5.1 概述
5.2 日志格式
5.3 控制台日志
5.4 日志文件
5.5 日志级别
5.6 日志分组
5.7 日志归档
5.8 日志配置文件
5.8.1 概述
5.8.2 日志配置模板
5.8.3 自定义日志配置文件
5.9 切换Log4j2日志框架
5.10 切换日志框架版本
5.11 输出彩色日志
5.11.1 开启彩色日志输出
5.11.2 日志上色原理
5.11.3 自定义日志颜色
5.12 日志关闭钩子
第6章 Spring Boot Web核心应用
6.1 概述
6.2 嵌入式容器
6.2.1 概述
6.2.2 容器配置
6.2.3 切换容器
6.2.4 随机空闲端口
6.2.5 SSL
6.2.6 持久化
6.2.7 优雅关闭
6.3 自定义Web配置
6.4 注册拦截器
6.5 注册消息转换器
6.6 注册类型转换器
6.7 注册Servlet、Filter、Listener
6.7.1 Spring Boot的手动注册
6.7.2 组件扫描注册
6.7.3 动态注册
6.8 静态资源处理
6.9 模板引擎
6.10 异常处理
6.10.1 默认的异常处理
6.10.2 自定义全局异常
6.10.3 自定义异常状态码页面
6.11 参数校验
6.11.1 概述
6.11.2 约束注解
6.11.3 参数校验示例
6.12 国际化
6.12.1 概述
6.12.2 自动国际化
6.12.3 切换国际化
6.13 分布式会话
6.14 跨域
6.15 安全性
6.15.1 默认的安全机制
6.15.2 自定义安全机制
6.16 REST服务调用
6.16.1 RestTemplate(Servlet)
6.16.2 WebClient(Reactive)
第7章 Spring Boot数据访问
7.1 概述
7.2 嵌入式数据库
7.3 数据源
7.3.1 概述
7.3.2 自定义数据源
7.4 连接池
7.4.1 概述
7.4.2 使用Druid连接池
7.5 数据库初始化
7.6 事务管理
7.6.1 概述
7.6.2 事务失效的场景
7.7 JdbcTemplate
7.7.1 数据库操作
7.7.2 自定义JdbcTemplate
7.8 Spring Data JPA
7.8.1 概述
7.8.2 数据库操作
7.9 MyBatis
7.9.1 概述
7.9.2 数据库操作
7.10 MyBatis-Plus
7.10.1 概述
7.10.2 通用数据库操作
7.10.3 自定义数据库操作
7.11 Redis
7.11.1 概述
7.11.2 Redis环境搭建
7.11.3 Spring Boot集成Redis
7.12 MongoDB
7.12.1 概述
7.12.2 MongoDB环境搭建
7.12.3 Spring Boot集成MongoDB
7.13 Elasticsearch
7.13.1 概述
7.13.2 Elasticsearch环境搭建
7.13.3 Spring Boot集成Elasticsearch
第8章 Spring Boot计划任务
8.1 Spring计划任务
8.1.1 概述
8.1.2 线程池工作流程
8.1.3 实现计划任务
8.1.4 Cron表达式
8.1.5 自定义线程池
8.2 Quartz计划任务
8.2.1 概述
8.2.2 实现计划任务
8.2.3 自定义配置
8.2.4 持久化任务数据
8.2.5 动态维护任务
第9章 Spring Boot缓存与消息队列
9.1 缓存
9.1.1 概述
9.1.2 开启缓存
9.1.3 默认简单缓存
9.1.4 Redis缓存
9.2 消息系统
9.2.1 概述
9.2.2 ActiveMQ
9.2.3 RabbitMQ
9.2.4 Kafka
第10章 Spring Boot调试与单元测试
10.1 断点调试
10.1.1 使用main方法启动调试
10.1.2 使用Maven插件启动调试
10.2 开发者工具
10.2.1 概述
10.2.2 默认值
10.2.3 自动重启
10.2.4 实时重载
10.2.5 全局配置
10.3 单元测试
10.3.1 概述
10.3.2 真实环境测试
10.3.3 Mock环境测试
10.3.4 Mock组件测试
10.3.5 技术框架测试
第11章 Spring Boot打包与部署
11.1 应用打包(jar)
11.1.1 概述
11.1.2 快速打包
11.1.3 自定义打包
11.2 应用打包(war)
11.2.1 概述
11.2.2 配置war包
11.2.3 开始打包
11.3 应用运行(嵌入式容器)
11.3.1 使用java命令运行
11.3.2 直接运行
11.3.3 系统服务运行
11.3.4 拆包运行
11.4 部署Docker容器
11.4.1 概述
11.4.2 Docker环境搭建
11.4.3 基于Dockerfile构建镜像
11.4.4 基于Cloud Native Buildpacks构建镜像
11.5 GraalVM原生镜像(Spring Boot 3.0 )
11.5.1 概述
11.5.2 GraalVM应用与传统应用的区别
11.5.3 创建GraalVM原生镜像的应用
11.5.4 构建基于GraalVM的原生镜像应用
第12章 Spring Boot监控与报警
12.1 Spring Boot Actuator概述
12.2 Endpoints(端点)
12.2.1 概述
12.2.2 内置端点
12.2.3 启用端点
12.2.4 暴露端点
12.2.5 端点安全性
12.2.6 自定义端点映射
12.2.7 端点实现机制
12.2.8 自定义端点
12.3 loggers(日志端点)
12.4 Observability(可观测性,Spring Boot 3.0 )
12.5 Metrics(指标)
12.5.1 内置指标
12.5.2 自定义指标
12.6 Traces(链路跟踪,Spring Boot 3.0 )
12.6.1 概述
12.6.2 链路跟踪环境搭建
12.6.3 链路跟踪/展示
12.7 Spring Boot Admin
12.7.1 概述
12.7.2 环境搭建
12.7.3 监控页面
12.7.4 监控报警
12.8 Prometheus Grafana
12.8.1 概述
12.8.2 Prometheus指标暴露
12.8.3 Prometheus环境搭建
12.8.4 Grafana数据可视化
12.8.5 监控报警
|
內容試閱:
|
写作背景
Spring作为Java开发界的万能框架,曾经和Struts2、Hibernate组成SSH框架,成为Java Web开发领域的“三驾马车”。在2013年左右,Spring又和 Spring MVC、MyBatis组成SSM,成为新一代Web开发框架全家桶,一直流行至今。
为了简化Spring的上手难度,Spring Boot于2014年诞生,可以帮助开发者更加轻松、快捷地使用Spring的组件,它是Spring、Spring MVC等框架更上一层的框架,它需要依赖Spring、Spring MVC等原生框架,而不能独立存在。
笔者最初接触和学习Spring Boot是在2016年,工作之余经常和同事们聊聊最新的Java技术,Spring Boot就是其中之一。那时候,Spring Boot虽然应用还不是很广泛,但很火热,逐渐成为炙手可热的Java框架。
自2016年起,笔者有幸负责和参与公司的多个系统重构,其中就包括从SSM框架到以Spring Boot为基础的技术转型,也包括以Spring Cloud为基础的微服务系统的设计和研发,Spring Cloud就是基于Spring Boot构建的。在多年的实际开发和架构设计工作中,笔者积累了大量Spring Boot的使用经验,也见证了Spring Boot 1.x~3.x的发展历史。
虽然笔者熟练掌握了Spring Boot,但在其不断发展的情况下,某些知识点更新了也可能浑然不知,直到在使用出错时才后知后觉。Spring Boot至今已经发展了近十年,最新的版本已经发布到了3.x版本,其底层实现逻辑、使用方式发生了翻天覆地的变化,同时在Spring Boot各个版本接二连三地停止维护的情况下,大部分版本已经不能满足技术更新的需要了。
市面上的很多图书、博客都是基于Spring Boot低版本的,即使介绍了最新的Spring Boot技术,也不是很系统,并没有对最新的技术要点进行系统的梳理、解读及应用举例,如果还继续学习低版本的内容,就会给很多初学者带来不必要的知识更新成本,也会走很多弯路。鉴于市面上关于Spring Boot 3.x的系统性学习资料比较匮乏,笔者撰写了本书,以帮助国内Java开发人员正确地学习、理解和使用最新的Spring Boot技术。
笔者从2017年开始,陆续写了一些关于Spring Boot的文章,本以为出版此书会相当顺利,结果远没有想象中的简单。写博客没有什么太重的思想负担,所以写得比较随意、零乱,也不成体系,与成体系的图书相差甚远,而且博客中的部分内容已经过时,所以仅能作为一个基石,笔者又花费了近一年的时间,在此基础上深度打磨、加强和完善,并新增了90%以上的内容,最后形成了本书的全部内容。
本书章节安排
本书共12章,这是一个由浅入深、循序渐进的学习过程。
第1章为Spring Boot基础入门,主要介绍Spring Boot的基础知识,包括背景介绍、核心特性、核心模块、核心思想、版本选择,以及Maven、Spring Boot CLI等相关工具的使用,还会分享简单的应用案例。
第2章为Spring Boot配置管理,主要介绍Spring Boot应用中的各种配置技巧,包括配置类、配置文件、外部化配置、配置绑定、导入配置、随机值配置、多文档配置、Profile、加载机制、配置加密、配置迁移,有助于后续章节的融会贯通。
第3章为Spring Boot Starter与自动配置,主要介绍Spring Boot Starter及其应用,包括命名规范、分类、自动配置原理及扩展机制,还介绍了邮件Starter及其应用,以及如何自定义一个Spring Boot Starter。
第4章为Spring Boot启动过程与扩展应用,主要介绍Spring Boot的启动过程,包括引导方式、启动入口方法、启动流程源码分析,以及启动过程中丰富的扩展应用,包括启动日志、启动图案、启动失败分析、启动事件和监听器、全局懒加载、启动运行器等。
第5章为Spring Boot日志管理,主要介绍Spring Boot日志的使用,包括日志格式、日志文件、日志级别、日志分组、日志归档、自定义日志配置文件、切换Log4j2日志框架、输出彩色日志等。
第6章为Spring Boot Web核心应用,这是Spring Boot项目最基本、最核心的部分,包括嵌入式容器、Web组件注册、静态资源处理、模板引擎、异常处理、参数校验、国际化、跨域、分布式会话、安全性、REST服务调用等常用的Web技术的原理介绍、集成与应用。
第7章为Spring Boot数据访问,主要介绍Spring Boot与关系型数据库及非关系型数据库的集成应用,包括数据源、连接池、事务管理、Spring Data JPA、MyBatis、MyBatis-Plus、Redis、MongoDB、Elasticsearch的原理、集成与应用。
第8章为Spring Boot计划任务,主要介绍计划任务在Spring Boot中的应用,包括Spring中的计划任务和Quartz计划任务的原理、集成与应用。
第9章为Spring Boot缓存与消息队列,主要介绍缓存和消息队列在Spring Boot中的应用,缓存机制的原理及Redis缓存的实现与集成,消息队列的原理及ActiveMQ、RabbitMQ、Kafka的原理、集成与应用。
第10章为Spring Boot调试与单元测试,主要介绍Spring Boot应用的调试方法、开发者工具的详细使用,以及如何在Spring Boot应用中做单元测试。
第11章为Spring Boot打包与部署,主要介绍Spring Boot应用的打包方式,以及如何将Spring Boot应用包以不同的方式运行、以不同的方式部署到Linux和Docker容器中,包括Spring Boot 3.0支持的构建GraalVM原生镜像的应用方式。
第12章为Spring Boot监控与报警,主要介绍Spring Boot Actuator监控模块及其应用,包括端点、指标,以及Spring Boot 3.0 支持的可观测性技术的应用,还包括第三方监控平台Spring Boot Admin、Prometheus Grafana的集成与应用。
实战源代码
本书提供了所有实战源代码,虽然本书介绍的内容全部基于Spring Boot 3.0.0,但是Spring Boot后续发布的新版本、新特性,也会进行更新和适配,读者可以“Star”、克隆、下载,学习最新的Spring Boot技术。
扫码关注微信公众号“Java技术栈”,在后台回复关键字“boot”,可获取本书实战源代码。
勘误和交流
因能力、时间和精力有限,本书难免存在纰漏之处,恳请广大读者朋友批评指正,笔者会第一时间在源代码仓库Issues一栏中发布最新勘误。读者可以通过以下方式向笔者反馈勘误或进行技术交流。
博客:https://www.javastack.cn。
邮箱:admin@javastack.cn。
微信公众号:Java技术栈(ID:javastack)。
致谢
本书能顺利出版,离不开电子工业出版社的编辑人员,特别是陈晓猛编辑,他在笔者写作过程中提供了很多建议和帮助,修正了不少错误。在此,特别感谢他们的默默付出。还要感谢笔者的家人,因为在这一年时间中,撰写此书占用了大量本该和他们共处的美好时光,导致没能好好陪伴他们,感谢家人对笔者写书的大力支持、包容和理解。
周红亮
|
|