目录 版权信息 一、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、下一步