Introduction
前言
一、Spring Boot 文档
1、关于本文档
2、获取帮助
3、起步
4、使用 Spring Boot
5、了解 Spring Boot 的新特性
6、生产环境
7、高级内容
二、入门
8、Spring Boot 简介
9、系统要求
9.1、Servlet 容器
10、安装 Spring Boot
10.1、针对 Java 开发人员的安装说明
10.1.1、Maven 安装
10.1.2、Gradle 安装
10.2、安装 Spring Boot CLI
10.2.1、手动安装
10.2.2、使用 SDKMAN! 安装
10.2.3、使用 OSX Homebrew 安装
10.2.4、使用 MacPorts 安装
10.2.5、命令行完成
10.2.6、快速入门 Spring CLI 示例
10.3、升级旧版 Spring Boot
11、开发第一个 Spring Boot 应用
11.1、 创建 POM
11.2、 添加 Classpath 依赖
11.3、 编码
11.3.1、@RestController 与 @RequestMapping 注解
11.3.2、@EnableAutoConfiguration 注解
11.3.3、main 方法
11.4、运行示例
11.5、创建可执行 jar
12、下一步
三、使用 Spring Boot
13、构建系统
13.1、依赖管理
13.2、Maven
13.2.1、继承 Starter Parent
13.2.2、不使用父 POM
13.2.3、使用 Spring Boot Maven 插件
13.3、Gradle
13.4、Ant
13.5、Starter
14、组织代码
14.1、使用 default 包
14.2、定位主应用类
15、配置类
15.1、导入额外的配置类
15.2、导入 XML 配置
16、自动配置
16.1、平滑替换自动配置
16.2、禁用指定的自动配置类
17、Spring Bean 与依赖注入
18、使用 @SpringBootApplication 注解
19、运行您的应用
19.1、使用 IDE 运行
19.2、作为打包应用运行
19.3、使用 Maven 插件
19.4、使用 Gradle 插件
19.5、热交换
20、开发者工具
20.1、Property 默认值
20.2、自动重启
20.2.1、条件评估变更日志
20.2.2、排除资源
20.2.3、监视附加路径
20.2.4、禁用重启
20.2.5、使用触发文件
20.2.6、自定义重启类加载器
20.2.7、已知限制
20.3、LiveReload
20.4、全局设置
20.5、远程应用
20.5.1、运行远程客户端应用
20.5.2、远程更新
21、打包生产应用
22、下一步
四、Spring Boot 特性
23、SpringApplication
23.1、启动失败
23.2、自定义 banner
23.3、自定义 SpringApplication
23.4、Fluent Builder API
23.5、应用程序事件与监听器
23.6、Web 环境
23.7、访问应用程序参数
23.8、使用 ApplicationRunner 或 ApplicationRunner
23.9、应用程序退出
23.10、管理功能
24、外部化配置
24.1、配置随机值
24.2、访问命令行属性
24.3、应用程序属性文件
24.4、特定 Profile 的属性文件
24.5、属性中的占位符
24.6、加密属性
24.7、使用 YAML 代替属性文件
24.7.1、加载 YAML
24.7.2、在 Spring Environment 中将 YAML 暴露为属性
24.7.3、多 profile YAML 文档
24.7.4、YAML 的缺点
24.8、类型安全的配置属性
24.8.1、第三方配置
24.8.2、宽松绑定
24.8.3、合并复杂类型
24.8.4、属性转换
转换 duration
转换 Data Size
24.8.5、@ConfigurationProperties 验证
24.8.6、@ConfigurationProperties 与 @Value 对比
25、Profile
25.1、添加激活 Profile
25.2、以编程方式设置 Profile
25.3、特定 Profile 的配置文件
26、日志记录
26.1、日志格式
26.2、控制台输出
26.2.1、着色输出
26.3、文件输出
26.4、日志等级
26.5、日志组
26.6、自定义日志配置
26.7、Logback 扩展
26.7.1、特定 Profile 配置
26.7.2、环境属性
27、JSON
27.1、Jackson
27.2、Gson
27.3、JSON-B
28、开发 Web 应用程序
28.1、Spring Web MVC 框架
28.1.1、Spring MVC 自动配置
28.1.2、HttpMessageConverters
28.1.3、自定义 JSON Serializer 和 Deserializer
28.1.5、静态内容
28.1.6、欢迎页面
28.1.7、自定义 Favicon
28.1.8、路径匹配与内容协商
28.1.9、ConfigurableWebBindingInitializer
28.1.10、模板引擎
28.1.11、错误处理
28.1.11.1、自定义错误页面
28.1.11.2、映射到 Spring MVC 之外的错误页面
28.1.12、Spring HATEOAS
28.1.13、CORS 支持
28.2、Spring WebFlux 框架
28.2.1、Spring WebFlux 自动配置
28.2.2、使用 HttpMessageReader 和 HttpMessageWriter 作为 HTTP 编解码器
28.2.3、静态内容
28.2.4、模板引擎
28.2.5、错误处理
28.2.5.1、自定义错误页面
28.2.6、Web 过滤器
28.3、JAX-RS 与 Jersey
28.4、内嵌 Servlet 容器支持
28.4.1、Servlet、Filter 与 Listener
28.4.2、Servlet 上下文初始化
28.4.2.1、扫描 Servlet、Filter 和 Listener
28.4.3、ServletWebServerApplicationContext
28.4.4、自定义内嵌 Servlet 容器
28.4.4.1、以编程方式自定义
28.4.4.2、直接自定义 ConfigurableServletWebServerFactory
28.4.5、JSP 局限
28.5、内嵌响应式服务器支持
28.6、响应式服务器资源配置
29、安全
29.1、MVC 安全
29.2、WebFlux 安全
29.3、OAuth2
29.3.1、客户端
OAuth2 客户端注册常见的提供者
29.3.2、资源服务器
29.3.3、授权服务器
29.4、Actuator 安全
29.4.1、跨站请求伪造保护
30、使用 SQL 数据库
30.1、配置数据源
30.1.1、内嵌数据库支持
30.1.2、连接生产数据库
30.1.3、连接 JNDI 数据源
30.2、使用 JdbcTemplate
30.3、JPA 与 Spring Data JPA
30.3.1、实体类
30.3.2、Spring Data JPA 资源库
30.3.3、创建和删除 JPA 数据库
30.3.4、在视图中打开 EntityManager
30.4、Spring Data JDBC
30.5、使用 H2 的 Web 控制台
30.5.1、更改 H2 控制台的路径
30.6、使用 jOOQ
30.6.1、代码生成
30.6.2、使用 DSLContext
30.6.3、jOOQ SQL 方言
30.6.4、自定义 jOOQ
31、使用 NoSQL 技术
31.1、Redis
31.1.1、连接 Redis
31.2、MongoDB
31.2.1、连接 MongoDB 数据库
31.2.2、MongoTemplate
31.2.3、Spring Data MongoDB 资源库
31.2.4、内嵌 Mongo
31.3、Neo4j
31.3.1、连接 Neo4j 数据库
31.3.2、使用内嵌模式
31.3.3、Neo4jSession
31.3.4、Spring Data Neo4j 资源库
31.4、Gemfire
31.5、Solr
31.5.1、连接 Solr
31.5.2、Spring Data Solr 资源库
31.6、Elasticsearch
31.6.1、使用 REST 客户端连接 Elasticsearch
31.6.2、使用 Jest 连接 Elasticsearch
31.6.3、使用 Spring Data 连接 Elasticsearch
31.6.4、Spring Data Elasticsearch 资源库
31.7、Cassandra
31.7.1、连接 Cassandra
31.7.2、Spring Data Cassandra 资源库
31.8、Couchbase
31.8.1、连接 Couchbase
31.8.2、Spring Data Couchbase 资源库
31.9、LDAP
31.9.1、连接 LDAP 服务器
31.9.2、Spring Data LDAP 资源库
31.9.3、内嵌内存式 LDAP 服务器
31.10、InfluxDB
31.10.1、连接 InfluxDB
32、缓存
32.1、支持的缓存提供者
32.1.1、Generic
32.1.2、JCache (JSR-107)
32.1.3、EhCache 2.x
32.1.4、Hazelcast
32.1.5、Infinispan
32.1.6、Couchbase
32.1.7、Redis
32.1.8、Caffeine
32.1.9、Simple
32.1.10、None
33、消息传递
33.1、JMS
33.1.1、ActiveMQ 支持
33.1.2、Artemis 支持
33.1.3、使用 JNDI ConnectionFactory
33.1.4、发送消息
33.1.5、接收消息
33.2、AMQP
33.2.1、RabbitMQ 支持
33.2.2、发送消息
33.2.3、接收消息
33.3、Apache Kafka 支持
33.3.1、发送消息
33.3.2、接收消息
33.3.3、Kafka Stream
33.3.4、其他 Kafka 属性
34、使用 RestTemplate 调用 REST 服务
34.1、自定义 RestTemplate
34、使用 RestTemplate 调用 REST 服务
35、使用 WebClient 调用 REST 服务
35.1、WebClient 运行时
35.2、自定义 WebClient
36、验证
37、发送邮件
38、JTA 分布式事务
38.1、使用 Atomikos 事务管理器
38.2、使用 Bitronix 事务管理器
38.3、使用 Java EE 管理的事务管理器
38.4、混合使用 XA 与非 XA JMS 连接
39、Hazelcast
40、Quartz 调度器
41、任务执行与调度
42、Spring Integration
43、Spring Session
44、通过 JMX 监控和管理
45、测试
46、WebSocket
47、Web Service
47.1、使用 WebServiceTemplate 调用 Web Service
49、创建自己的自动配置
49.1、理解自定配置 Bean
49.2、找到候选的自动配置
49.3、条件注解
49.3.1、类条件
49.3.2、Bean 条件
49.3.3、属性条件
49.3.4、资源条件
49.3.5、Web 应用程序条件
49.3.6、SpEL 表达式条件
49.4、测试自动配置
49.4.1、模拟一个 Web 上下文
49.4.2、覆盖 Classpath
49.5、创建自己的 Starter
49.5.1、命名
49.5.2、autoconfigure 模块
49.5.3、Starter 模块
50、Kotlin 支持
50.1、要求
50.2、Null 安全
50.3、Kotlin API
50.3.1、runApplication
50.3.2、扩展
50.4、依赖管理
50.5、@ConfigurationProperties
50.6、测试
50.7、资源
50.7.1、进阶阅读
50.7.2、示例
51、下一步
五、Spring Boot Actuator: 生产就绪功能
52、启用生产就绪功能
53、端点
53.1、启用端点
53.2、暴露端点
53.3、保护 HTTP 端点
53.4、配置端点
53.5、Actuator Web 端点超媒体
53.6、跨域支持
53.7、实现自定义端点
53.7.1、接收输入
53.7.2、自定义 Web 端点
53.7.3、Servlet 端点
53.7.4、控制器端点
53.8、健康信息
53.8.1、自动配置的 HealthIndicator
53.8.2、编写自定义 HealthIndicator
53.8.3、响应式健康指示器
53.8.4、自动配置的 ReactiveHealthIndicator
53.9、应用程序信息
53.9.1、自动配置的 InfoContributor
53.9.2、自定义应用程序信息
53.9.3、Git 提交信息
53.9.4、构建信息
53.9.5、编写自定义 InfoContributor
54、通过 HTTP 监控和管理
54.1、自定义 Management 端点路径
54.2、自定义 Management 服务器端口
54.3、配置 Management 的 SSL
54.4、配置 Management 服务器地址
54.5、禁用 HTTP 端点
55、通过 JMX 监控和管理
55.1、自定义 MBean 名称
55.2、禁用 JMX 端点
55.3、通过 HTTP 使用 Jolokia 访问 JMX
55.3.1、自定义 Jolokia
55.3.2、禁用 Jolokia
56、日志记录器
56.1、配置一个日志记录器
57、指标
57.1、入门
57.2、支持的监控系统
57.2.1、AppOptics
57.2.2、Atlas
57.2.3、Datadog
57.2.4、Dynatrace
57.2.5、Elastic
57.2.6、Ganglia
57.2.7、Graphite
57.2.8、Humio
57.2.9、Influx
57.2.10、JMX
57.2.11、KairosDB
57.2.12、New Relic
57.2.13、Prometheus
57.2.14、SignalFx
57.2.15、Simple
57.2.16、StatsD
57.2.17、Wavefront
57.3、支持的指标
57.3.1、Spring MVC 指标
57.3.2、Spring WebFlux 指标
57.3.3、Jersey Server 指标
57.3.4、HTTP Client 指标
57.3.5、Cache 指标
57.3.6、数据源指标
57.3.7、Hibernate 指标
57.3.8、RabbitMQ 指标
57.4、注册自定义指标
57.5、自定义单独指标
57.5.1、自定义标签
57.5.2、Per-meter 属性
57.6、指标端点
58、审计
59、HTTP 追踪
59.1、自定义 HTTP 追踪
60、进程监控
60.1、扩展配置
60.2、编程方式
61、Cloud Foundry 支持
61.1、禁用 Cloud Foundry Actuator 扩展支持
61.2、Cloud Foundry 自签名证书
61.3、自定义上下文路径
62、下一步
六、部署 Spring Boot 应用程序
63、部署到云端
64、安装 Spring Boot 应用程序
65、下一步
七、Spring Boot CLI
66、安装 CLI
67、使用 CLI
68、使用 Groovy Beans DSL 部署应用程序
69、使用 配置 CLI
70、下一步
八、构建工具插件
71、Spring Boot Maven 插件
72、Spring Boot Gradle 插件
73、Spring Boot AntLib 模块
74、支持其他构建系统
75、下一步
本书使用 GitBook 发布
Introduction
Spring Boot 中文文档
请关注微信公众号:Felordcn
License
本作品采用
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议
进行许可。