spring boot参考文档——目录


sprint boot操作指南
-------------------------
作者:
    Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, Andy Wilkinson, Marcel Overdijk, Christian Dupuis, Sébastien Deleuze, Michael Simons, Vedran Pavić, Jay Bryant, Madhura Bhave

2.0.3.RELEASE

Copyright © 2012-2018
无论任何用途,本文档全部免费
-----------------------------------
目录

I spring boot文档
    1. 关于本文档
    2. 帮助
    3. 第一步
    4. 使用spring boot
    5. 学习spring boot的特性
    6. 产品在生产使用
    7. 高级主题
II 启动
    8. 介绍spring boot
    9. 系统要求
        9.1 servlet容器
    10. 安装spring boot
        10.1 适用于java开发者的安装指令
            10.1.1 maven安装
        10.2 安装spring boot命令行
            10.2.1 手动安装
            10.2.2 快速启动spring命令行
        10.3 spring boot早期版本的升级
    11. 开发第一个spring boot应用
        11.1 创建pom
        11.2 添加类路径依赖
        11.3 写代码
            11.3.1 @RestController和@RequestMapping注解
            11.3.2 @EnableAutoConfiguration注解
            11.3.3 main方法
        11.4 运行示例
        11.5 创建可运行jar
    12. 导读
III 使用spring boot
    13. 构建系统
        13.1 依赖管理
        13.2 maven
            13.2.1 继承启动父本
            13.2.2 使用pom中没有父本的spring boot
            13.2.3 使用spring boot的maven插件
        13.3 启动项
    14. 结构化代码
        14.1 使用默认包
        14.2 定位主应用类
    15. 配置类
        15.1 导入附加配置类
        15.2 导入XML配置
    16. 自动配置
        16.1 逐步取代自动配置
        16.2 禁用特定自动配置类
    17. spring beans和依赖注入
    18. 使用@SpringBootApplication注解
    19. 运行应用程序
        19.1 在集成开发环境中运行
        19.2 打包运行应用程序
        19.3 使用maven插件
        19.4 热部署
    20. 开发者工具
        20.1 默认属性
        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. 导读
IV spring boot特性
    23. SpringApplication
        23.1 启动失败
        23.2 自定义Bannar
        23.3 自定义SpringApplication
        23.4 流畅的建造者API
        23.5 应用事件和监听器
        23.6 网络环境
        23.7 获取应用参数
        23.8 使用ApplicationRunner或CommandLineRunner
        23.9 应用退出
        23.10 管理特性
    24. 通用化(外部化)配置
        24.1 配置随机值
        24.2 添加命令行配置信息
        24.3 应用配置文件
        24.4 特定配置文件
        24.5 配置文件中的占位符
        24.6 使用YAML代替配置文件
            24.6.1 现在YAML
            24.6.2 在spring环境中将YAML导出为Properties配置文件
            24.6.3 Multi-profile YAML文档
            24.6.4 YAML的不足
        24.7 类型安全的配置文件
            24.7.1 第三方配置
            24.7.2 轻松绑定
            24.7.3 复杂类型合并
            24.7.4 配置转换 转换时长
            24.7.5 @ConfigurationProperties验证
            24.7.6 @ConfigurationProperties vs. @Value
    25. 配置文件
        25.1 添加动态配置文件
        25.2 以编程的方式设置配置文件
        25.3 具体化配置文件
    26. 日志
        26.1 日志格式
        26.2 控制台输出
            26.2.1 彩色编码输出
        26.3 文件输出
        26.4 日志等级
        26.5 自定义日志配置
        26.6 日志配置扩展
            26.6.1 具体化配置
            26.6.2 环境配置
    27. 开发web应用
        27.1 spring web mvc框架
            27.1.1 spring mvc自动配置
            27.1.2 HttpMessageConverters
            27.1.3 自定义json序列化和反序列化器
            27.1.4 MessageCodesResolver
            27.1.5 静态内容
            27.1.6 欢迎页面
            27.1.7 自定义图标
            27.1.8 路径匹配和内容协商
            27.1.9 ConfigurableWebBindingInitializer
            27.1.10 模板引擎
            27.1.11 错误处理
                自定义错误页
                将错误页映射到MVC以外
            27.1.12 Spring HATEOAS
            27.1.13 CORS支持
        27.2 Spring WebFlux框架
            27.2.1 Spring WebFlux自动配置
            27.2.2 HTTP使用HttpMessageReaders和HttpMessageWriters编解码
            27.2.3 静态内容
            27.2.4 模板引擎
            27.2.5 错误处理
                自定义错误页
            27.2.6 Web过滤器
        27.3 JAX-RS and Jersey
        27.4 嵌入式sevlet容器的支持
            27.4.1 Servlets, Filters, 和 listeners
                将Servlets, Filters, 和 listeners注册为bean
            27.4.2 sevlet上下文初始化
                扫描Servlets, Filters, 和 listeners
            27.4.3 ServletWebServerApplicationContext
            27.4.4 自定义嵌入式容器
                编程定制
                直接定制ConfigurableServletWebServerFactory
            27.4.5 JSP限制
    28. 安全
        28.1 MVC安全
        28.2 WebFlux安全
        28.3 OAuth2
            28.3.1 客户端
            28.3.2 服务器
        28.4 Actuator安全
            CSRF保护
    29. SQL数据库
        29.1 配置数据源
            29.1.1 嵌入式数据库的支持
            29.1.2 连接产品数据库
            29.1.3 连接JNDI数据库
        29.2 使用jdbc模板
        29.3 JPA和“Spring Data”
            29.3.1 实体类
            29.3.2 Spring Data JPA仓库
            29.3.3 创建和删除JPA数据库
            29.3.4 在视图中打开实体管理器
        29.4 使用H2的Web控制台
            29.4.1 改变H2控制台路径
        29.5 使用jOOQ
            29.5.1 代码生成
            29.5.2 使用DSLContext
            29.5.3 jOOQ SQL Dialect
            29.5.4 自定义jOOQ
    30. 使用NoSQL技术
        30.1 Redis
            30.1.1 连接redis
        30.2 MongoDB
            30.2.1 连接MongoDB数据库
            30.2.2 MongoTemplate
            30.2.3 Spring Data MongoDB仓库
            30.2.4 嵌入式mongo
        30.3 Neo4j
            30.3.1 连接Neo4j数据库
            30.3.2 使用内嵌模式
            30.3.3 Neo4jSession
            30.3.4 Spring Data Neo4j仓库
            30.3.5 仓库示例
        30.4 GemFire(类似redis)
        30.5 Solr
            30.5.1 连接Solr
            30.5.2 Spring Data Solr仓库
        30.6 Elasticsearch
            30.6.1 使用Jest连接Elasticsearch
            30.6.2 使用Spring Data连接Elasticsearch
            30.6.3 Spring Data Elasticsearch仓库
        30.7 Cassandra
            30.7.1 连接Cassandra数据库
            30.7.2 Spring Data Cassandra仓库
        30.8 Couchbase
            30.8.1 连接Couchbase
            30.8.2 Spring Data Couchbase仓库
        30.9 LDAP
            30.9.1 连接LDAP服务器
            30.9.2 Spring Data LDAP仓库
            30.9.3 嵌入式内存LDAP服务器
        30.10  InfluxDB
            30.10.1 连接InfluxDB
    31. 缓存
        31.1 提供的缓存支持
            31.1.1. Generic
            31.1.2. JCache (JSR-107)
            31.1.3. EhCache 2.x
            31.1.4. Hazelcast
            31.1.5. Infinispan
            31.1.6. Couchbase
            31.1.7. Redis
            31.1.8. Caffeine
            31.1.9. Simple
            31.1.10. None
    32. 消息传送
        32.1 JMS
            32.1.1. ActiveMQ支持
            32.1.2. Artemis支持
            32.1.3. 使用JNDI ConnectionFactory
            32.1.4. 发送消息
            32.1.5. 接收消息
        32.2 AMQP
            32.2.1. RabbitMQ支持
            32.2.2. 发送消息
            32.2.3. 接收消息
        32.3. Apache Kafka支持
            32.3.1 发送消息
            32.3.2 接收消息
            32.3.3 额外Kafka配置
    33. 通过RestTemplate使用REST Services(以信息为中心的表述性状态转移(Representational State Transfer,REST)) 
        33.1 RestTemplate定制
    34. 通过WebClient使用REST Services
        34.1 WebClient定制
    35. Validation(校验)
    36. 发送Email
    37. 使用JTA(事物处理架构)分布式处理事物
        37.1. 使用Atomikos事物管理器
        37.2. 使用Bitronix事物管理器
        37.3. 使用Narayana事物管理器
        37.4. 使用Java EE Managed事物管理器
        37.5. Mixing XA 和 Non-XA JMS 连接
        37.6. 支持嵌入式事物管理器
    38. Hazelcast
    39. Quartz Scheduler
    40. spring集成
    41. Spring Session
    42. 基于JMX的监控和管理
    43. 测试
        43.1 测试域的依赖
        43.2 测试spring应用
        43.3 测试spring boot应用
            43.3.1. 检测web应用的类型
            43.3.2. 检测测试配置
            43.3.3. 排除测试配置
            43.3.4. 使用running server测试
            43.3.5. 使用JMX
            43.3.6. 模拟和查看Beans
            43.3.7. 自动配置测试
            43.3.8. 自动配置json测试
            43.3.9. 自动配置Spring MVC测试
            43.3.10. 自动配置Spring WebFlux测试
            43.3.11. 自动配置Data JPA测试
            43.3.12. 自动配置 JDBC测试
            43.3.13. 自动配置 jOOQ测试
            43.3.14. 自动配置 Data MongoDB测试
            43.3.15. 自动配置 Data Neo4j测试
            43.3.16. 自动配置 Data Redis测试
            43.3.17. 自动配置 Data LDAP测试
            43.3.18. 自动配置 REST Clients
            43.3.19. 自动配置 Spring REST Docs测试
                    使用模拟MVC自动配置 REST Docs测试 
                    使用REST Assured自动配置 Spring REST Docs测试
            43.3.20. 用户配置和切片
            43.3.21. 使用Spock测试Spring Boot应用
        43.4 测试工具
            43.4.1. ConfigFileApplicationContextInitializer
            43.4.2. TestPropertyValues
            43.4.3. OutputCapture
            43.4.4. TestRestTemplate
    44. WebSockets
    45. Web服务
    46. 创建自己的自动配置
        46.1 了解自动配置Beans
        46.2 定位自动配置Candidates
        46.3 条件注解
            46.3.1. Class Conditions
            46.3.2. Bean Conditions
            46.3.3. Property Conditions
            46.3.4. Resource Conditions
            46.3.5. Web Application Conditions
            46.3.6. SpEL Expression Conditions 
        46.4 测试你的自动配置
            46.4.1 模拟web上下文
            46.4.2 覆盖类路径
        46.5 创建自己的启动项
            46.5.1 命名
            46.5.2 自动配置模块
            46.5.3 启动模块
    47. Kotlin支持
        47.1. 要求
        47.2. Null-safety
        47.3. Kotlin API
            47.3.1. 运行应用
            47.3.2. 扩展
        47.4. 依赖管理
        47.5. @ConfigurationProperties
        47.6. 测试
        47.7. 资源
        47.7.1. Further reading
        47.7.2. 示例
    48. 导读
    
V spring boot执行器:Production-ready features
    49. 启动Production-ready features
    50. 终端
        50.1. 启动终端
        50.2. 暴露终端
        50.3. Securing HTTP Endpoints
        50.4. 配置终端
        50.5. 执行器Web终端的超媒体
        50.6. 执行器Web终端路径
        50.7. CORS支持
        50.8. 实现定制终端
            50.8.1. 接收输入
                输入类型转换
            50.8.2. 定制Web终端
                Web终端请求预测
                路径
                HTTP方法
                Consumes
                Produces
                Web终端返回状态
                Web终端请求范围
                Web终端安全
            50.8.3. Servlet终端
            50.8.4. Controller终端
        50.9. 健康度信息
            50.9.1. 自动配置HealthIndicators
            50.9.2. 写入定制HealthIndicators
            50.9.3. 反应性健康指示器
            50.9.4. 自动配置ReactiveHealthIndicators
        50.10. 应用信息
            50.10.1. 自动配置InfoContributors
            50.10.2. 定制应用信息
            50.10.3. Git提交信息
            50.10.4. 创建信息
            50.10.5. 写入定制InfoContributors
    51. HTTP上的监控和管理
        51.1. 自定义监控终端路径
        51.2. 自定义管理服务器端口
        51.3. 配置管理特性(Management-specific) SSL
        51.4. 自定义管理服务器地址
        51.5. 禁止启用HTTP终端
    52. JMX上的监控和管理
        52.1. 自定义MBean名称
        52.2. 禁止启用JMX终端
        52.3. 在HTTP上使用JMX的Jolokia
        52.3.1. 自定义Jolokia
        52.3.2. 禁止启用Jolokia
    53. 日志
        53.1. 配置日志
    54. Metrics
        54.1. 启动
        54.2. 监控系统支持
            54.2.1. Atlas
            54.2.2. Datadog
            54.2.3. Ganglia
            54.2.4. Graphite
            54.2.5. Influx
            54.2.6. JMX
            54.2.7. New Relic
            54.2.8. Prometheus
            54.2.9. SignalFx
            54.2.10. Simple
            54.2.11. StatsD
            54.2.12. Wavefront
        54.3. Metrics支持
            54.3.1. Spring MVC Metrics
            54.3.2. Spring WebFlux Metrics
            54.3.3. RestTemplate Metrics
            54.3.4. Cache Metrics
            54.3.5. DataSource Metrics
            54.3.6. RabbitMQ Metrics
        54.4. 注册定制metrics
        54.5. 自定义自己的metrics
            54.5.1. Per-meter properties
        54.6. Metrics终端
    55. 审计
    56. HTTP轨迹追踪
        56.1. 自定义HTTP轨迹追踪
    57. 过程监控
        57.1. 扩展配置
        57.2. 以编程的方式
    58. Cloud Foundry支持
        58.1 禁用扩展Cloud Foundry执行器支持
        58.2. Cloud Foundry自签认证(证书)
        58.3. 自定义上下文路径
    59. 导读
VI. 部署spring boot应用
    60. 部署到云上
        60.1. Cloud Foundry
            60.1.1. 绑定服务
        60.2. Heroku
        60.3. OpenShift
        60.4. Amazon Web Services (AWS)
            60.4.1. AWS Elastic Beanstalk
                使用Tomcat平台
                使用Java SE平台
            60.4.2. 总结
        60.5. Boxfuse and Amazon Web Services
        60.6. Google云
    61. 安装Spring Boot应用
        61.1. 支持的操作系统
        61.2. Unix/Linux服务
            61.2.1. 作为一个init.d安装(System V)
                Securing an init.d服务
            61.2.2. 作为一个系统服务安装
            61.2.3. 自定义启动脚本
                自定义写入时启动脚本                
                自定义运行时脚本
        61.3. Microsoft Windows服务
    62. 导读
VII. Spring Boot命令行(CLI)
    63. 安装命令行
    64. 使用命令行
        64.1. 使用命令行运行应用
            64.1.1. Deduced “grab” Dependencies
            64.1.2. Deduced “grab” Coordinates
            64.1.3. 默认导入Statements
            64.1.4. Automatic Main Method
            64.1.5. 自定义依赖管理
        64.2. 具有多个源文件的应用程序
        64.3. 打包应用程序
        64.4. 初始化一个新的项目
        64.5. 使用嵌入式Shell
        64.6. 给命令行增加扩展
    65. 使用Groovy Beans DSL开发应用
    66. 使用settings.xml配置命令行 
    67. 导读
VIII. 创建工具插件
    68. Spring Boot Maven插件
        68.1. 加入Plugin
        68.2. 打包可执行的Jar and War文件
    69. Spring Boot Gradle插件
        70. Spring Boot AntLib Module
            70.1. Spring Boot Ant Tasks
                70.1.1. spring-boot:exejar
                70.1.2. 示例
        70.2. spring-boot:findmainclass(寻找主类)
            70.2.1. 示例
    71. 支持其他的构建系统
        71.1. 重新打包Archives
        71.2. (Nested Libraries)库嵌套
        71.3. 寻找主类
        71.4. 重新打包实现示例
    72. 导读
IX. ‘How-to’引导
    73. Spring Boot应用
        73.1. 创建自己的FailureAnalyzer
        73.2. 自动故障检测
        73.3. 启动之前自定义环境或ApplicationContext
        73.4. 创建一个ApplicationContext层级(Adding a Parent or Root Context)
        73.5. 创建一个Non-web Application
    74. 属性和配置
        74.1. 创建时自动扩展属性
            74.1.1. 使用Maven自动扩展属性
            74.1.2. 使用Gradle自动扩展属性
        74.2. 外部化SpringApplication的配置
        74.3. 改变应用外部属性配置文件的位置
        74.4. 使用短命令行参数
        74.5. 使用YAML作为外部属性配置文件
        74.6. 设置Active Spring Profiles
        74.7. 根据环境改变配置
        74.8. 查找外部属性的内置选项
    75. 嵌入式Web服务器
        75.1. 使用另一个Web服务器
        75.2. 禁用Web服务器
        75.3. 改变HTTP端口
        75.4. 使用随机的未占用HTTP端口
        75.5. 在运行环境中查找HTTP端口
        75.6. 启用HTTP响应压缩
        75.7. 配置SSL
        75.8. 配置HTTP/2
            75.8.1. HTTP/2 with Undertow
            75.8.2. HTTP/2 with Jetty
            75.8.3. HTTP/2 with Tomcat
        75.9. 配置Web服务器
        75.10. 给应用添加一个Servlet, Filter, 或Listener
            75.10.1. 通过使用Spring Bean添加Servlet, Filter, 或 Listener
                禁用Servlet或Filter的注册
            75.10.2. 通过类路径扫描添加Servlets, Filters, 和 Listeners
        75.11. 配置访问日志
        75.12. 运行在前端代理服务器之后
            75.12.1. 自定义Tomcat的代理配置
        75.13. 给Tomcat启用多个连接器
        75.14. 使用Tomcat的LegacyCookieProcessor
        75.15. Undertow启用多监听器(Listeners)
        75.16. 使用@ServerEndpoint创建WebSocket终端 
    76. Spring MVC
        76.1. 写一个JSON REST服务
        76.2. 写一个XML REST服务
        76.3. 自定义Jackson ObjectMapper
        76.4. 自定义@ResponseBody Rendering
        76.5. 处理Multipart File上传
        76.6. 关闭Spring MVC DispatcherServlet
        76.7. 关闭默认的MVC配置
        76.8. 自定义ViewResolvers
    77. Jersey
        77.1. Secure Jersey终端使用Spring Security
    78. HTTP客户端
        78.1. 使用代理配置RestTemplate
    79. 日志
        79.1. 为日志配置Logback
            79.1.1. 为只有文件的输出配置Logback
        79.2.为日志配置Log4j
            79.2.1. 使用YAML或JSON配置Log4j 2
    80. 数据访问
        80.1. 配置一个自定义数据源
        80.2. 配置两个数据源
        80.3. 使用Spring数据仓库
        80.4. 从spring配置中分离出@Entity的定义
        80.5. 配置JPA特性
        80.6. 配置Hibernate的命名策略
        80.7. 使用自定义EntityManagerFactory
        80.8. 使用两个EntityManagers
        80.9. 使用传统的persistence.xml文件
        80.10. 使用Spring数据JPA和Mongo仓库
        80.11. 暴露Spring数据仓库作为REST终端
        80.12. 配置一个JPA(java持久层API)使用的组件
        80.13. 配置两个数据源的jOOQ(数据库访问框架)
    81. 数据库初始化
        81.1. 使用JPA初始化数据库
        81.2. 使用Hibernate初始化数据库
        81.3. 初始化数据库
        81.4. 初始化Spring Batch数据库
        81.5. 使用一个高等级的数据库迁移工具
            81.5.1. 启动时执行Flyway数据库迁移
            81.5.2. 启动时执行Liquibase数据库迁移
    82. 消息
        82.1. 禁用Transacted JMS Session
    83. 批量应用
        83.1. 启动时执行spring批量任务
    84. 执行器(actuator)
        84.1. 改变执行器终端的HTTP接口或地址
        84.2. 自定义白标签错误页
        84.3. Sanitize sensible values
    85. 安全
        85.1. 关闭Spring Boot安全配置
        85.2. 改变UserDetailsService和添加账号
        85.3. 当运行在代理服务器之后时启用HTTPS
    86. 热部署
        86.1. 重载静态内容
        86.2. 在不重启容器的情况下重载模板
            86.2.1. Thymeleaf模板
            86.2.2. FreeMarker模板
            86.2.3. Groovy模板
        86.3. 快速启动应用
        86.4. 在不重启容器的情况下重载java类
    87. 创建
        87.1. 产生Build信息
        87.2. 产生Git信息
        87.3. 自定义依赖版本
        87.4. 使用maven创建一个可执行JAR
        87.5. 使用一个Spring Boot应用作为依赖
        87.6. 当可执行jar运行时提取具体的库
        87.7. 创建一个Non-executable JAR使用Exclusions
        87.8. 远程调试一个使用maven启动的Spring Boot应用
        87.9. 不使用spring-boot-antlib从Ant创建一个可执行Archive
    88. 传统部署
        88.1. 创建一个可部署的war包文件
        88.2. 将一个已有的应用转化为Spring Boot
        88.3. 在Weblogic上部署WAR
        88.4. 使用Jedis代替Lettuce
X. 附件
    A. 常见应用配置
    B. 配置Metadata
        B.1. Metadata格式
            B.1.1. Group Attributes
            B.1.2. Property Attributes
            B.1.3. Hint Attributes
            B.1.4. Repeated Metadata Items
        B.2. Providing Manual Hints
            B.2.1. Value Hint
            B.2.2. Value Providers
                Any
                Class Reference
                Handle As
                Logger Name
                Spring Bean Reference
                Spring Profile Name
        B.3. Generating Your Own Metadata by Using the Annotation Processor
            B.3.1. Nested Properties
            B.3.2. Adding Additional Metadata
    C. 自动配置类
        C.1. From the “spring-boot-autoconfigure” module
        C.2. From the “spring-boot-actuator-autoconfigure” module
    D. 测试自动配置注解
    E. 可执行Jar格式
        E.1. Nested JARs
            E.1.1. The Executable Jar File Structure
            E.1.2. The Executable War File Structure
        E.2. Spring Boot’s “JarFile” Class
            E.2.1. Compatibility with the Standard Java “JarFile”
        E.3. Launching Executable Jars
            E.3.1. Launcher Manifest
            E.3.2. Exploded Archives
        E.4. PropertiesLauncher Features
        E.5. Executable Jar Restrictions
        E.6. Alternative Single Jar Solutions
    F. 依赖版本

猜你喜欢

转载自blog.csdn.net/a13662080711/article/details/81781191