Spring Boot 文档和手册
  • Introduction
  • 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.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. 接下来阅读什么
  • III. 使用Spring Boot
    • 13. 构建系统
      • 13.1. 依赖管理
      • 13.2. Maven
        • 13.2.1. 继承starter parent
        • 13.2.2. 在不使用parent POM的情况下玩转Spring Boot
        • 13.2.3. 改变Java版本
        • 13.2.4. 使用Spring Boot Maven插件
      • 13.3. Gradle
      • 13.4. Ant
      • 13.5. Starters
    • 14. 组织你的代码
      • 14.1. 使用"default"包
      • 14.2. 放置应用的main类
    • 15. 配置类
      • 15.1. 导入其他配置类
      • 15.2. 导入XML配置
    • 16. 自动配置
      • 16.1. 逐步替换自动配置
      • 16.2. 禁用特定的自动配置
    • 17. Spring Beans和依赖注入
    • 18. 使用@SpringBootApplication注解
    • 19. 运行应用程序
      • 19.1. 从IDE中运行
      • 19.2. 作为一个打包后的应用运行
      • 19.3. 使用Maven插件运行
      • 19.4. 使用Gradle插件运行
      • 19.5. 热交换
    • 20. 开发者工具
      • 20.1 默认属性
      • 20.2 自动重启
        • 20.2.1 排除资源
        • 20.2.2 查看其他路径
        • 20.2.3 禁用重启
        • 20.2.4 使用触发器文件
        • 20.2.5 自定义restart类加载器
        • 20.2.6 已知限制
      • 20.3 LiveReload
      • 20.4 全局设置
      • 20.5 远程应用
        • 20.5.1 运行远程客户端应用
        • 20.5.2 远程更新
        • 20.5.3 远程调试通道
          • 21. 打包用于生产的应用
          • 22. 接下来阅读什么
  • IV. Spring Boot特性
    • 23. SpringApplication
      • 23.1 启动失败
      • 23.2. 自定义Banner
      • 23.3. 自定义SpringApplication
      • 23.4. 流式构建API
      • 23.5. Application事件和监听器
      • 23.6. Web环境
      • 23.7 访问应用参数
      • 23.8. 使用ApplicationRunner或CommandLineRunner
      • 23.9 Application退出
    • 24.外化配置
      • 24.1. 配置随机值
      • 24.2. 访问命令行属性
      • 24.3. Application属性文件
      • 24.4. Profile-specific属性
      • 24.5. 属性占位符
      • 24.6. 使用YAML代替Properties
        • 24.6.1. 加载YAML
        • 24.6.2. 在Spring环境中使用YAML暴露属性
        • 24.6.3. Multi-profile YAML文档
        • 24.6.4. YAML缺点
        • 24.6.5 合并YAML列表
      • 24.7. 类型安全的配置属性
        • 24.7.1. 第三方配置
        • 24.7.2. Relaxed绑定
        • 24.7.3 属性转换
        • 24.7.4. @ConfigurationProperties校验
        • 24.7.5 @ConfigurationProperties vs @Value
    • 25. Profiles
      • 25.1. 添加激活的profiles
      • 25.2.以编程方式设置profiles
      • 25.3. Profile-specific配置文件
    • 26. 日志
      • 26.1. 日志格式
      • 26.2. 控制台输出
        • 26.2.1 Color-coded输出
      • 26.3. 文件输出
      • 26.4. 日志级别
      • 26.5. 自定义日志配置
      • 26.6 Logback扩展
        • 26.6.1 Profile-specific配置
        • 26.6.2 Environment属性
    • 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 ConfigurableWebBindingInitializer
        • 27.1.7 模板引擎
        • 27.1.8 错误处理
        • 27.1.9 Spring HATEOAS
        • 27.1.10 CORS支持
      • 27.2 JAX-RS和Jersey
      • 27.3 内嵌servlet容器支持
        • 27.3.1 Servlets, Filters和listeners
        • 27.3.2 Servlet上下文初始化
        • 27.3.3 EmbeddedWebApplicationContext
        • 27.3.4 自定义内嵌servlet容器
        • 27.3.5 JSP的限制
    • 28. 安全
      • 28.1 OAuth2
        • 28.1.1 授权服务器
        • 28.1.2 资源服务器
      • 28.2 User Info中的Token类型
      • 28.3 自定义User Info RestTemplate
        • 28.3.1 客户端
        • 28.3.2 单点登陆
      • 28.4 Actuator安全
    • 29. 使用SQL数据库
      • 29.1. 配置DataSource
        • 29.1.1. 对内嵌数据库的支持
        • 29.1.2. 连接生产环境数据库
        • 29.1.3. 连接JNDI数据库
      • 29.2. 使用JdbcTemplate
      • 29.3. JPA和Spring Data
        • 29.3.1. 实体类
        • 29.3.2. Spring Data JPA仓库
        • 29.3.3. 创建和删除JPA数据库
      • 29.4 使用H2的web控制台
        • 29.4.1 改变H2控制台路径
        • 29.4.2 保护H2控制台
      • 29.5 使用jOOQ
        • 29.5.1 代码生成
        • 29.5.2 使用DSLContext
        • 29.5.3 自定义jOOQ
    • 30. 使用NoSQL技术
      • 30.1. Redis
        • 30.1.1. 连接Redis
      • 30.2. MongoDB
        • 30.2.1. 连接MongoDB数据库
        • 30.2.2. MongoDBTemplate
        • 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
      • 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 Elasticseach仓库
      • 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仓库
    • 31. 缓存
      • 31.1 支持的缓存提供商
        • 31.1.1 Generic
        • [31.1.2 JCache (JSR-107)](IV. Spring Boot features/31.1.2 JCache (JSR-107).md)
        • 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 Guava
        • 31.1.10 Simple
        • 31.1.11 None
    • 32. 消息
      • 32.1. JMS
        • 32.1.1 ActiveQ支持
        • 32.1.2 Artemis支持
        • 32.1.3 HornetQ支持
        • 32.1.4 使用JNDI ConnectionFactory
        • 32.1.5 发送消息
        • 32.1.6 接收消息
      • 32.2 AMQP
        • 32.2.1 RabbitMQ支持
        • 32.2.2 发送消息
        • 32.2.3 接收消息
      • 33. 调用REST服务
        • 33.1 自定义RestTemplate
    • 34. 发送邮件
    • 35. 使用JTA处理分布式事务
      • 35.1 使用Atomikos事务管理器
      • 35.2 使用Bitronix事务管理器
      • 35.3 使用Narayana事务管理器
      • 35.4 使用J2EE管理的事务管理器
      • 35.5 混合XA和non-XA的JMS连接
      • 35.6 支持可替代的内嵌事务管理器
    • 36. Hazelcast
    • 37. Spring集成
    • 38. Spring Session
    • 39. 基于JMX的监控和管理
    • 40. 测试
      • 40.1 测试作用域依赖
      • 40.2 测试Spring应用
      • 40.3 测试Spring Boot应用
        • 40.3.1 发现测试配置
        • 40.3.2 排除测试配置
        • 40.3.3 使用随机端口
        • 40.3.4 模拟和监视beans
        • 40.3.5 自动配置测试
        • 40.3.6 自动配置的JSON测试
        • 40.3.7 自动配置的Spring MVC测试
        • 40.3.8 自动配置的Data JPA测试
        • 40.3.9 自动配置的REST客户端
        • 40.3.10 自动配置的Spring REST Docs测试
        • 40.3.11 使用Spock测试Spring Boot应用
      • 40.4 测试工具类
        • 40.4.1 ConfigFileApplicationContextInitializer
        • 40.4.2 EnvironmentTestUtils
        • 40.4.3 OutputCapture
        • 40.4.4 TestRestTemplate
    • 41. WebSockets
    • 42. Web Services
    • 43. 创建自己的auto-configuration
      • 43.1 理解自动配置的beans
      • 43.2 定位自动配置候选者
      • 43.3 条件注解
        • 43.3.1 Class条件
        • 43.3.2 Bean条件
        • 43.3.3 Property条件
        • 43.3.4 Resource条件
        • 43.3.5 Web Application条件
        • 43.3.6 SpEL表达式条件
      • 43.4 创建自己的starter
        • 43.4.1 命名
        • 43.4.2 自动配置模块
        • 43.4.3 Starter模块
    • 44. 接下来阅读什么
  • V. Spring Boot 执行器
    • 45. 开启production-ready特性
    • 46. 端点
      • 46.1 自定义端点
      • 46.2 执行器MVC端点的超媒体支持
      • 46.3 CORS支持
      • 46.4 添加自定义端点
      • 46.5 健康信息
      • 46.6 安全与HealthIndicators
        • 46.6.1 自动配置的HealthIndicators
        • 46.6.2 编写自定义HealthIndicators
      • 46.7 应用信息
        • 46.7.1 自动配置的InfoContributors
        • 46.7.2 自定义应用info信息
        • 46.7.3 Git提交信息
        • 46.7.4 构建信息
        • 46.7.5 编写自定义的InfoContributors
    • 47. 基于HTTP的监控和管理
      • 47.1 保护敏感端点
      • 47.2 自定义管理端点路径
      • 47.3 自定义管理服务器端口
      • 47.4 配置管理相关的SSL
      • 47.5 自定义管理服务器地址
      • 47.6 禁用HTTP端点
      • 47.7 HTTP health端点访问限制
    • 48. 基于JMX的监控和管理
      • 48.1 自定义MBean名称
      • 48.2 禁用JMX端点
      • 48.3 使用Jolokia通过HTTP实现JMX远程管理
        • 48.3.1 自定义Jolokia
        • 48.3.2 禁用Jolokia
    • 49. 使用远程shell进行监控和管理
      • 49.1 连接远程shell
        • 49.1.1 远程shell证书
      • 49.2 扩展远程shell
        • 49.2.1 远程shell命令
        • 49.2.2 远程shell插件
    • 50. 度量指标
      • 50.1 系统指标
      • 50.2 数据源指标
      • 50.3 缓存指标
      • 50.4 Tomcat session指标
      • 50.5 记录自己的指标
      • 50.6 添加自己的公共指标
      • 50.7 使用Java8的特性
      • 50.8 指标写入,导出和聚合
        • 50.8.1 示例: 导出到Redis
        • 50.8.2 示例: 导出到Open TSDB
        • 50.8.3 示例: 导出到Statsd
        • 50.8.4 示例: 导出到JMX
      • 50.9 聚合多个来源的指标
      • 50.10 Dropwizard指标
      • 50.11 消息渠道集成
    • 51. 审计
    • 52. 追踪
      • 52.1 自定义追踪
    • 53. 进程监控
      • 53.1 扩展配置
      • 53.2 以编程方式
    • 54. 接下来阅读什么
  • VI. 部署到云端
    • 55. 部署到云端
      • 55.1 Cloud Foundry
        • 55.1.1 绑定服务
      • 55.2 Heroku
      • 55.3 Openshift
      • 55.4 Boxfuse和Amazon Web Services
      • 55.5 Google App Engine
    • 56. 安装Spring Boot应用
      • 56.1 Unix/Linux服务
        • 56.1.1 安装为 init.d 服务
        • 56.1.2 安装为Systemd服务
        • 56.1.3 自定义启动脚本
      • 56.2 Microsoft Windows服务
    • 57. 接下来阅读什么
  • VII. Spring Boot CLI
    • 58. 安装CLI
    • 59. 使用CLI
      • 59.1 使用CLI运行应用
        • 59.1.1 推断"grab"依赖
        • 59.1.2 推断"grab"坐标
        • 59.1.3 默认import语句
        • 59.1.4 自动创建main方法
        • 59.1.5 自定义依赖管理
      • 59.2 测试你的代码
      • 59.3 多源文件应用
      • 59.4 应用打包
      • 59.5 初始化新工程
      • 59.6 使用内嵌shell
      • 59.7 为CLI添加扩展
    • 60. 使用Groovy beans DSL开发应用
    • 61. 使用settings.xml配置CLI
    • 62. 接下来阅读什么
  • VIII. 构建工具插件
    • 63. Spring Boot Maven插件
      • 63.1 包含该插件
      • 63.2 打包可执行jar和war文件
    • 64. Spring Boot Gradle插件
      • 64.1 包含该插件
      • 64.2 Gradle依赖管理
      • 64.3 打包可执行jar和war文件
      • 64.4 就地(in-place)运行项目
      • 64.5 Spring Boot插件配置
      • 64.6 Repackage配置
      • 64.7 使用Gradle自定义配置进行Repackage
        • 64.7.1 配置选项
        • 64.7.2 可用的layouts
      • 64.8 理解Gradle插件是如何工作的
      • 64.9 用 Gradle 将包发布到 Maven
        • 64.9.1 自定义 Gradle 用于管理的 pom
      • 65. Spring Boot AntLib模块
        • 65.1. Spring Boot Ant任务
          • 65.1.1. spring-boot:exejar
          • 65.1.2. 示例
        • 65.2. spring-boot:findmainclass
          • 65.2.1. 示例
    • 66. 对其他构建系统的支持
      • 66.1. 重新打包存档
      • 66.2. 内嵌库
      • 66.3. 查找main类
      • 66.4. repackage实现示例
    • 67. 接下来阅读什么
  • IX. How-to指南
    • 68. Spring Boot应用
      • 68.1 创建自己的FailureAnalyzer
      • 68.2 解决自动配置问题
      • 68.3 启动前自定义Environment或ApplicationContext
      • [68.4 构建ApplicationContext层次结构](IX. ‘How-to’ guides/68.4 Build an ApplicationContext hierarchy (addi
      • 68.5 创建no-web应用
        • 69. 属性&配置
      • 69.1. 运行时暴露属性
        • 69.1.1. 使用Maven自动暴露属性
        • 69.1.2. 使用Gradle自动暴露属性
      • 69.2. 外部化SpringApplication配置
      • 69.3 改变应用程序外部配置文件的位置
      • 69.4 使用'short'命令行参数
      • 69.5 使用YAML配置外部属性
      • 69.6 设置生效的Spring profiles
      • 69.7 根据环境改变配置
      • 69.8 发现外部属性的内置选项
    • 70. 内嵌 servlet 容器
      • 70.1 为应用添加Servlet,Filter或Listener
      • 70.2 改变HTTP端口
      • 70.3 使用随机未分配的HTTP端口
      • 70.4 发现运行时的HTTP端口
      • 70.5 配置SSL
      • 70.6 配置访问日志
      • 70.7 在前端代理服务器后使用
        • 70.7.1 自定义Tomcat代理配置
      • 70.8 配置Tomcat
      • 70.9 启用Tomcat的多连接器
      • 70.10 使用Tomcat的LegacyCookieProcessor
      • 70.11 使用Jetty替代Tomcat
      • 70.12 配置Jetty
      • 70.13 使用Undertow替代Tomcat
      • 70.14 配置Undertow
      • 70.15 启用Undertow的多监听器
      • 70.16 使用Tomcat 7.x或8.0
        • 70.16.1 通过Maven使用Tomcat 7.x或8.0
        • 70.16.2 通过Gradle使用Tomcat7.x或8.0
      • 70.17 使用Jetty9.2
        • 70.17.1 通过Maven使用Jetty9.2
        • 70.17.2 通过Gradle使用Jetty 9.2
      • 70.18 使用Jetty 8
        • 70.18.1 通过Maven使用Jetty8
        • 70.18.2 通过Gradle使用Jetty8
      • 70.19 使用@ServerEndpoint创建WebSocket端点
    • 71. Spring MVC
      • 71.1 编写JSON REST服务
      • 71.2 编写XML REST服务
      • 71.3 自定义Jackson ObjectMapper
      • 71.4 自定义@ResponseBody渲染
      • 71.5 处理Multipart文件上传
      • 71.6 关闭Spring MVC DispatcherServlet
      • 71.7 关闭默认的MVC配置
      • 71.8 自定义ViewResolvers
      • 71.9 Velocity
      • 71.10 使用Thymeleaf 3
    • 73. 日志
      • 73.1 配置Logback
        • 73.1.1 配置logback只输出到文件
      • 73.2 配置Log4j
        • 73.2.1 使用YAML或JSON配置Log4j2
    • 74. 数据访问
      • 74.1 配置数据源
      • 74.2 配置两个数据源
      • 74.3 使用Spring Data仓库
      • 74.4 从Spring配置分离@Entity定义
      • 74.5 配置JPA属性
      • 74.6 使用自定义EntityManagerFactory
      • 74.7 使用两个EntityManagers
      • 74.8 使用普通的persistence.xml
      • 74.9 使用Spring Data JPA和Mongo仓库
      • 74.10 将Spring Data仓库暴露为REST端点
      • 74.11 配置JPA使用的组件
    • 75. 数据库初始化
      • 75.1 使用JPA初始化数据库
      • 75.2 使用Hibernate初始化数据库
      • 75.3 使用Spring JDBC初始化数据库
      • 75.4 初始化Spring Batch数据库
      • 75.5 使用高级数据迁移工具
        • 75.5.1 启动时执行Flyway数据库迁移
        • 75.5.2 启动时执行Liquibase数据库迁移
    • 76. 批处理应用
      • 76.1 在启动时执行Spring Batch作业
    • 77. 执行器
      • 77.1 改变HTTP端口或执行器端点的地址
      • 77.2 自定义WhiteLabel错误页面
      • 77.3 Actuator和Jersey
    • 78. 安全
      • 78.1 关闭Spring Boot安全配置
      • 78.2 改变AuthenticationManager并添加用户账号
      • 78.3 当前端使用代理服务器时启用HTTPS
    • 79. 热交换
      • 79.1 重新加载静态内容
      • 79.2. 在不重启容器的情况下重新加载模板
        • 79.2.1 Thymeleaf模板
        • 79.2.2 FreeMarker模板
        • 79.2.3 Groovy模板
        • 79.2.4 Velocity模板
      • 79.3 应用快速重启
      • 79.4 在不重启容器的情况下重新加载Java类
        • 79.4.1 使用Maven配置Spring Loaded
        • 79.4.2 使用Gradle和IntelliJ IDEA配置Spring Loaded
    • 80. 构建
      • 80.1 生成构建信息
      • 80.2 生成Git信息
      • 80.3 自定义依赖版本
      • 80.4 使用Maven创建可执行JAR
      • 80.5 将Spring Boot应用作为依赖
      • 80.6 在可执行jar运行时提取特定的版本
      • 80.7 使用排除创建不可执行的JAR
      • 80.8 远程调试使用Maven启动的Spring Boot项目
      • 80.9 远程调试使用Gradle启动的Spring Boot项目
      • 80.10 使用Ant构建可执行存档
      • 80.11 如何使用Java6
        • 80.11.1 内嵌Servlet容器兼容性
        • 80.11.2 Jackson
        • 80.11.3 JTA API兼容性
    • 81. 传统部署
      • 81.1 创建可部署的war文件
      • 81.2 为老的servlet容器创建可部署的war文件
      • 81.3 将现有的应用转换为Spring Boot
      • 81.4 部署WAR到Weblogic
      • [81.5 部署WAR到老的(Servlet2.5)容器](IX. ‘How-to’ guides/81.5 Deploying a WAR in an Old (Servlet 2.5) Conta
  • X.附录
    • 附录A. 常见应用属性
    • 附录B. 配置元数据
      • 附录B.1. 元数据格式
        • 附录B.1.1. Group属性
        • 附录B.1.2. Property属性
        • 附录B.1.3. 可重复的元数据节点
      • 附录B.2. 使用注解处理器产生自己的元数据
        • 附录 B.2.1. 内嵌属性
        • 附录 B.2.2. 添加其他的元数据
    • 附录C. 自动配置类
      • 附录 C.1. 来自spring-boot-autoconfigure模块
      • 附录C.2. 来自spring-boot-actuator模块
    • 附录D. 可执行jar格式
      • 附录D.1. 内嵌JARs
        • 附录D.1.1. 可执行jar文件结构
        • 附录D.1.2. 可执行war文件结构
      • 附录D.2. Spring Boot的"JarFile"类
        • 附录D.2.1. 对标准Java "JarFile"的兼容性
      • 附录D.3. 启动可执行jars
        • 附录D.3.1 Launcher manifest
        • 附录D.3.2. 暴露的存档
      • 附录D.4. PropertiesLauncher特性
      • 附录D.5. 可执行jar的限制
        • 附录D.5.1. Zip实体压缩
        • 附录D.5.2. 系统ClassLoader
      • 附录D.6. 可替代的单一jar解决方案
    • 附录E. 依赖版本
Powered by GitBook
On this page

Was this helpful?

  1. II. 开始使用

8. Spring Boot介绍

Spring Boot 能够让你更加容易创建一个独立启动,产品化的,并且是基于 Spring 的应用程序。我们为 Spring 平台及第三方库提供开箱即用的设置,这样你就可以有条不紊的开始开发,减少在开发配置中的困难。

绝大部分的 Spring Boot 应用只需要很少的 Spring 配置。

你可以使用 Spring Boot 来创建一个可以使用 java -jar 运行的 Java 引用,你也可以将这个引用的 war 文件部署到传统的容器中。我们也提供了一个运行 Spring 脚本(spring scripts)的命令行工具。

我们主要的目标是:

  • 为所有的 Spring 开发提供一个更快更广泛的入门体验。

  • 成为开箱即用的先锋,但是根据需求的默认值的更高,更加快速的进行开发和部署。

  • 为大型项目提供一系列非功能性的通用功能(包括有,嵌入服务器,安全,指标,健康检查,外部化配置)。

  • 绝对不需要创建代码和需要 XML 配置。

PreviousII. 开始使用Next9. 系统要求

Last updated 6 years ago

Was this helpful?