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. 使用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. 使用触发器文件
        • 20.2.6. 自定义restart类加载器
        • 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. 自定义Banner
      • 23.3. 自定义SpringApplication
      • 23.4. 流式构建API
      • 23.5. 应用事件和监听器
      • 23.6. Web环境
      • 23.7. 访问应用参数
      • 23.8. 使用ApplicationRunner或CommandLineRunner
      • 23.9. 应用退出
      • 23.10. Admin特性
    • 24.外化配置
      • 24.1. 配置随机值
      • 24.2. 访问命令行属性
      • 24.3. 应用属性文件
      • 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. 欢迎页
        • 27.1.7. 定制网站图标
        • 27.1.8. 路径匹配与内容协商
        • 27.1.9. ConfigurableWebBindingInitializer
        • 27.1.10. 模板引擎
        • 27.1.11. 错误处理
        • 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 网络过滤器
      • 27.3. JAX-RS和Jersey
      • 27.4 内嵌servlet容器支持
        • 27.4.1 Servlets、Filters和listeners
        • 27.4.2 Servlet上下文初始化
        • 27.4.3 ServletWebServerApplicationContext
        • 27.4.4 自定义内嵌servlet容器
        • 27.4.5 JSP的限制
    • 28. 安全
      • 28.1 MVC安全
      • 28.2 WebFlux安全
      • 28.3 OAuth2
        • 28.3.1 客户端
      • 28.4 执行器安全
        • 28.4.1 跨站请求伪造保护
    • 29. 使用SQL数据库
      • 29.1. 配置数据源
        • 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.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方言
        • 29.5.4 自定义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仓库
      • 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 ActiveQ支持
        • 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服务
      • 33.1 自定义RestTemplate
    • 34. 使用WebClient调用REST服务
      • 34.1 自定义WebClient
    • 35. 验证
    • 36. 发送邮件
    • 37. 使用JTA处理分布式事务
      • 37.1 使用Atomikos事务管理器
      • 37.2 使用Bitronix事务管理器
      • 37.3 使用Narayana事务管理器
      • 37.4 使用J2EE管理的事务管理器
      • 37.5 混合XA和non-XA的JMS连接
      • 37.6 支持可替代的内嵌事务管理器
    • 38. Hazelcast
    • 39. Quartz调度器
    • 40. Spring集成
    • 41. Spring Session
    • 42. 基于JMX的监控和管理
    • 43. 测试
      • 43.1 测试作用域依赖
      • 43.2 测试Spring应用
      • 43.3 测试Spring Boot应用
        • 43.3.1 检测网络应用类型
        • 43.3.2 检测测试配置
        • 43.3.3 排除测试配置
        • 43.3.4 使用运行的服务器测试
        • 43.3.5 模拟和监视bean
        • 43.3.6 自动配置测试
        • 43.3.7 自动配置的JSON测试
        • 43.3.8 自动配置的Spring MVC测试
        • 43.3.9 自动配置的Spring WebFlux测试
        • 43.3.10 自动配置的Data JPA测试
        • 43.3.11 自动配置的JDBC测试
        • 43.3.12 自动配置的jOOQ测试
        • 43.3.13 自动配置的Data MongoDB测试
        • 43.3.14 自动配置的Data Neo4j测试
        • 43.3.15 自动配置的Data Redis测试
        • 43.3.16 自动配置的Data LDAP测试
        • 43.3.17 自动配置的REST客户端
        • 43.3.18 自动配置的Spring REST Docs测试
        • 43.3.19 用户配置与切片
        • 43.3.20 使用Spock测试Spring Boot应用
      • 43.4 测试工具类
        • 43.4.1 ConfigFileApplicationContextInitializer
        • 43.4.2 EnvironmentTestUtils
        • 43.4.3 OutputCapture
        • 43.4.4 TestRestTemplate
    • 44. WebSockets
    • 45. Web Services
    • 46. 创建自己的自动配置
      • 46.1 理解自动配置的bean
      • 46.2 定位自动配置候选者
      • 46.3 条件注解
        • 46.3.1 Class条件
        • 46.3.2 Bean条件
        • 46.3.3 Property条件
        • 46.3.4 Resource条件
        • 46.3.5 Web Application条件
        • 46.3.6 SpEL表达式条件
      • 46.4 测试你的自动配置
        • 46.4.1 模拟网络上下文
        • 46.4.2 覆盖类路径
      • 46.5 创建自己的starter
        • 46.5.1 命名
        • 46.5.2 自动配置模块
        • 46.5.3 Starter模块
    • 47. Kotlin支持
      • 47.1 要求
      • 47.2 空安全
      • 47.3 Kotlin API
        • 47.3.1 runApplication
        • 47.3.2 扩展
      • 47.4 依赖管理
      • 47.5 @ConfigurationProperties
      • 47.6 测试
      • 47.7 资源
        • 47.7.1 延伸阅读
        • 47.7.2 示例
    • 48. 接下来阅读什么
  • V. Spring Boot执行器:用于生产环境的特性
    • 49. 开启用于生产环境的特性
    • 50. 端点
      • 50.1 启用端点
      • 50.2 暴露端点
      • 50.3 加密HTTP端点
      • 50.4 配置端点
      • 50.5 执行器网络端点的超媒体支持
      • 50.6 执行器网络端点路径
      • 50.7 CORS支持
      • 50.8 实现自定义端点
        • 50.8.1 接收输入
        • 50.8.2 自定义网络端点
        • 50.8.3 Servlet端点
        • 50.8.4 Controller端点
      • 50.9 健康信息
        • 50.9.1 自动配置的HealthIndicator
        • 50.9.2 编写自定义HealthIndicator
        • 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 编写自定义的InfoContributor
    • 51. 基于HTTP的监控和管理
      • 51.1 自定义管理端点路径
      • 51.2 自定义管理服务器端口
      • 51.3 配置管理相关的SSL
      • 51.4 自定义管理服务器地址
      • 51.5 禁用HTTP端点
    • 52. 基于JMX的监控和管理
      • 52.1 自定义MBean名称
      • 52.2 禁用JMX端点
      • 52.3 使用Jolokia通过HTTP实现JMX远程管理
        • 52.3.1 自定义Jolokia
        • 52.3.2 禁用Jolokia
    • 53. 记录器
      • 53.1 配置记录器
    • 54. 度量指标
      • 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 支持的指标
        • 54.3.1 Spring MVC指标
        • 54.3.2 Spring WebFlux指标
        • 54.3.3 RestTemplate指标
        • 54.3.4 Spring集成指标
        • 54.3.5 缓存指标
        • 54.3.6 数据源指标
        • 54.3.7 RabbitMQ指标
      • 54.4 注册自定义指标
      • 54.5 自定义单个指标
        • 54.5.1 Per-meter属性
      • 54.6 度量端点
    • 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. 部署到云端
    • 60. 部署到云端
      • 60.1 Cloud Foundry
        • 60.1.1 绑定服务
      • 60.2 Heroku
      • 60.3 Openshift
      • 60.4 亚马逊网络服务(AWS)
        • 60.4.1 AWS Elastic Beanstalk
        • 60.4.2 总结
      • 60.5 Boxfuse和亚马逊网络服务
      • 60.6 Google Cloud
    • 61. 安装Spring Boot应用
      • 61.1 支持的操作系统
      • 61.2 Unix/Linux服务
        • 61.2.1 安装为init.d服务(System V)
        • 61.2.2 安装为Systemd服务
        • 61.2.3 自定义启动脚本
      • 61.3 Microsoft Windows服务
    • 62. 接下来阅读什么
  • VII. Spring Boot CLI
    • 63. 安装CLI
    • 64. 使用CLI
      • 64.1 使用CLI运行应用
        • 64.1.1 推断"grab"依赖
        • 64.1.2 推断"grab"坐标
        • 64.1.3 默认import语句
        • 64.1.4 自动创建main方法
        • 64.1.5 自定义依赖管理
      • 64.2 多源文件应用
      • 64.3 应用打包
      • 64.4 初始化新工程
      • 64.5 使用内嵌shell
      • 64.6 为CLI添加扩展
    • 65. 使用Groovy beans DSL开发应用
    • 66. 使用settings.xml配置CLI
    • 67. 接下来阅读什么
  • VIII. 构建工具插件
    • 68. Spring Boot Maven插件
      • 68.1 包含该插件
      • 68.2 打包可执行jar和war文件
    • 69. Spring Boot Gradle插件
    • 70. Spring Boot AntLib模块
      • 70.1. Spring Boot Ant任务
        • 70.1.1. spring-boot:exejar
        • 70.1.2. 示例
      • 70.2. spring-boot:findmainclass
        • 70.2.1. 示例
    • 71. 对其他构建系统的支持
      • 71.1. 重新打包存档
      • 71.2. 内嵌库
      • 71.3. 查找main类
      • 71.4. repackage实现示例
    • 72. 接下来阅读什么
  • IX. How-to指南
    • 73. Spring Boot应用
      • 73.1 创建自己的FailureAnalyzer
      • 73.2 解决自动配置问题
      • 73.3 启动前自定义Environment或ApplicationContext
      • 73.4 构建ApplicationContext层次结构
      • 73.5 创建no-web应用
    • 74. 属性与配置
      • 74.1. 运行时暴露属性
        • 74.1.1. 使用Maven自动暴露属性
        • 74.1.2. 使用Gradle自动暴露属性
      • 74.2. 外部化SpringApplication配置
      • 74.3 改变应用程序外部配置文件的位置
      • 74.4 使用“短”命令行参数
      • 74.5 使用YAML配置外部属性
      • 74.6 设置生效的Spring profiles
      • 74.7 根据环境改变配置
      • 74.8 发现外部属性的内置选项
    • 75. 内嵌网络服务器
      • 75.1 使用另外的网络服务器
      • 75.2 配置Jetty
      • 75.3 为应用添加Servlet、Filter或Listener
        • 75.3.1 使用Spring bean添加Servlet、Filter或Listener
        • 75.3.2 使用类路径扫描添加Servlet、Filter和Listener
      • 75.4 改变HTTP端口
      • 75.5 使用随机未分配的HTTP端口
      • 75.6 在运行时发现HTTP端口
      • 75.7 配置SSL
      • 75.8 配置HTTP/2
        • 75.8.1 HTTP/2与Undertow
        • 75.8.2 HTTP/2与Jetty
        • 75.8.3 HTTP/2与Tomcat
      • 75.9 配置访问日志
      • 75.10 在前端代理服务器后运行
        • 75.10.1 自定义Tomcat代理配置
      • 75.11 配置Tomcat
      • 75.12 启用Tomcat的多连接器
      • 75.13 使用Tomcat的LegacyCookieProcessor
      • 75.14 配置Undertow
      • 75.15 启用Undertow的多监听器
      • 75.16 使用@ServerEndpoint创建WebSocket端点
      • 75.17 启用HTTP响应压缩
    • 76. Spring MVC
      • 76.1 编写JSON REST服务
      • 76.2 编写XML REST服务
      • 76.3 自定义Jackson ObjectMapper
      • 76.4 自定义@ResponseBody渲染
      • 76.5 处理Multipart文件上传
      • 76.6 关闭Spring MVC DispatcherServlet
      • 76.7 关闭默认的MVC配置
      • 76.8 自定义ViewResolvers
    • 77. HTTP客户端
      • 77.1 配置RestTemplate使用代理
    • 78. 日志
      • 78.1 配置Logback
        • 78.1.1 配置logback只输出到文件
      • 78.2 配置Log4j
        • 78.2.1 使用YAML或JSON配置Log4j2
    • 79. 数据访问
      • 79.1 配置自定义的数据源
      • 79.2 配置两个数据源
      • 79.3 使用Spring Data仓库
      • 79.4 从Spring配置分离@Entity定义
      • 79.5 配置JPA属性
      • 79.6 配置Hibernate命名策略
      • 79.7 使用自定义EntityManagerFactory
      • 79.8 使用两个EntityManagers
      • 79.9 使用传统的persistence.xml文件
      • 79.10 使用Spring Data JPA和Mongo仓库
      • 79.11 将Spring Data仓库暴露为REST端点
      • 79.12 配置JPA使用的组件
      • 79.13 使用两个数据源配置jOOQ
    • 80. 数据库初始化
      • 80.1 使用JPA初始化数据库
      • 80.2 使用Hibernate初始化数据库
      • 80.3 初始化数据库
      • 80.4 初始化Spring Batch数据库
      • 80.5 使用高级数据迁移工具
        • 80.5.1 启动时执行Flyway数据库迁移
        • 80.5.2 启动时执行Liquibase数据库迁移
    • 81. 消息传送
      • 81.1 禁用事务JMS会话
    • 82. 批处理应用
      • 82.1 在启动时执行Spring Batch作业
    • 83. 执行器
      • 83.1 改变HTTP端口或执行器端点的地址
      • 83.2 自定义WhiteLabel错误页面
    • 84. 安全
      • 84.1 关闭Spring Boot安全配置
      • 84.2 改变AuthenticationManager并添加用户账号
      • 84.3 当前端使用代理服务器时启用HTTPS
    • 85. 热交换
      • 85.1 重新加载静态内容
      • 85.2. 在不重启容器的情况下重新加载模板
        • 85.2.1 Thymeleaf模板
        • 85.2.2 FreeMarker模板
        • 85.2.3 Groovy模板
      • 85.3 应用快速重启
      • 85.4 在不重启容器的情况下重新加载Java类
    • 86. 构建
      • 86.1 生成构建信息
      • 86.2 生成Git信息
      • 86.3 自定义依赖版本
      • 86.4 使用Maven创建可执行JAR
      • 86.5 将Spring Boot应用作为依赖
      • 86.6 在可执行jar运行时提取特定的版本
      • 86.7 使用排除创建不可执行的JAR
      • 86.8 远程调试使用Maven启动的Spring Boot项目
      • 86.9 使用Ant构建可执行存档(不使用spring-boot-antlib)
    • 87. 传统部署
      • 87.1 创建可部署的war文件
      • 87.2 为老的servlet容器创建可部署的war文件
      • 87.3 将现有的应用转换为Spring Boot
      • 87.4 部署WAR到Weblogic
      • 87.5 部署WAR到老的(Servlet2.5)容器
      • 87.6 使用Lettuce来代替Jedis
  • X.附录
    • 附录A. 常见应用属性
    • 附录B. 配置元数据
      • 附录B.1. 元数据格式
        • 附录B.1.1. Group属性
        • 附录B.1.2. Property属性
        • 附录B.1.3. Hint属性
        • 附录B.1.4. 可重复的元数据节点
      • 附录B.2. 提供人工提示
        • 附录 B.2.1 值提示
        • 附录 B.2.2 值提供者
      • 附录B.3. 使用注解处理器产生自己的元数据
        • 附录 B.3.1. 内嵌属性
        • 附录 B.3.2. 添加其他的元数据
    • 附录C. 自动配置类
      • 附录C.1. 来自spring-boot-autoconfigure模块
      • 附录C.2. 来自spring-boot-actuator-autoconfigure模块
    • 附录D. 测试的自动配置的标注
    • 附录E. 可执行Jar格式
      • 附录E.1. 内嵌JARs
        • 附录E.1.1. 可执行Jar文件结构
        • 附录E.1.2. 可执行War文件结构
      • 附录E.2. Spring Boot的"JarFile"类
        • 附录E.2.1. 对标准Java "JarFile"的兼容性
      • 附录E.3. 启动可执行Jars
        • 附录E.3.1 Launcher manifest
        • 附录E.3.2. 暴露的存档
      • 附录E.4. PropertiesLauncher特性
      • 附录E.5. 可执行jar的限制
      • 附录E.6. 可替代的单一jar解决方案
    • 附录F. 依赖版本
由 GitBook 提供支持
在本页

这有帮助吗?

  1. III. 使用Spring Boot
  2. 13. 构建系统

13.5. Starters

上一页13.4. Ant下一页14. 组织你的代码

最后更新于6年前

这有帮助吗?

Starters是一个依赖描述符的集合,你可以将它包含进项目中,这样添加依赖就非常方便。你可以获取所有Spring及相关技术的一站式服务,而不需要翻阅示例代码,拷贝粘贴大量的依赖描述符。例如,如果你想使用Spring和JPA进行数据库访问,需要在项目中包含spring-boot-starter-data-jpa依赖。

该starters包含很多搭建,快速运行项目所需的依赖,并提供一致的,可管理传递性的依赖集。

名字有什么含义:所有官方starters遵循相似的命名模式:spring-boot-starter-*,在这里*是一种特殊的应用程序类型。该命名结构旨在帮你找到需要的starter。很多集成于IDEs中的Maven插件让你通过名称搜索依赖。例如,使用相应的Eclipse或STS插件,你可以在POM编辑器中点击ctrl-space,然后输入"spring-boot-starter"就可以获取一个完整列表。 正如章节中讨论的,第三方starters不应该以spring-boot开头,因为它跟Spring Boot官方artifacts冲突。第三方starter通常会用项目的名称开头。例如,一个叫做thirdpartyproject的第三方starter项目,通常会被命名为thirdpartyproject-spring-boot-starter。

以下应用程序starters是Spring Boot在org.springframework.boot group下提供的:

表 13.1. Spring Boot application starters

名称

描述

Pom

spring-boot-starter

核心starter,包括自动配置支持,日志和YAML

spring-boot-starter-activemq

用于使用Apache ActiveMQ实现JMS消息

spring-boot-starter-amqp

用于使用Spring AMQP和Rabbit MQ

spring-boot-starter-aop

用于使用Spring AOP和AspectJ实现面向切面编程

spring-boot-starter-artemis

使用Apache Artemis实现JMS消息

spring-boot-starter-batch

对Spring Batch的支持

spring-boot-starter-cache

用于使用Spring框架的缓存支持

spring-boot-starter-cloud-connectors

对Spring Cloud Connectors的支持,用于简化云平台下(例如Cloud Foundry 和Heroku)服务的连接

spring-boot-starter-data-cassandra

用于使用分布式数据库Cassandra和Spring Data Cassandra

spring-boot-starter-data-cassandra-reactive

用于使用分布式数据库Cassandra和Spring Data Cassandra Reactive

spring-boot-starter-data-couchbase

用于使用基于文档的数据库Couchbase和Spring Data Couchbase

spring-boot-starter-data-couchbase-reactive

用于使用基于文档的数据库Couchbase和Spring Data Couchbase Reactive

spring-boot-starter-data-elasticsearch

用于使用Elasticsearch搜索,分析引擎和Spring Data Elasticsearch

spring-boot-starter-data-jpa

用于使用Hibernate实现Spring Data JPA

spring-boot-starter-data-ldap

用于Spring Data LDAP

spring-boot-starter-data-mongodb

用于使用基于文档的数据库MongoDB和Spring Data MongoDB

spring-boot-starter-data-mongodb-reactive

用于使用基于文档的数据库MongoDB和Spring Data MongoDB Reactive

spring-boot-starter-data-neo4j

用于使用图数据库Neo4j和Spring Data Neo4j

spring-boot-starter-data-redis

用于使用Spring Data Redis和Lettuce客户端操作键-值存储的Redis

spring-boot-starter-data-redis-reactive

用于使用Spring Data Redis reactive和Lettuce客户端操作键-值存储的Redis

spring-boot-starter-data-rest

用于使用Spring Data REST暴露基于REST的Spring Data仓库

spring-boot-starter-data-solr

通过Spring Data Solr使用Apache Solr搜索平台

spring-boot-starter-freemarker

用于使用FreeMarker模板引擎构建MVC web应用

spring-boot-starter-groovy-templates

用于使用Groovy模板引擎构建MVC web应用

spring-boot-starter-hateoas

用于使用Spring MVC和Spring HATEOAS实现基于超媒体的RESTful web应用

spring-boot-starter-integration

用于使用Spring Integration

spring-boot-starter-jdbc

对JDBC的支持(使用Tomcat JDBC连接池)

spring-boot-starter-jersey

spring-boot-starter-jooq

spring-boot-starter-json

用于读写json

spring-boot-starter-jta-atomikos

用于使用Atomikos实现JTA事务

spring-boot-starter-jta-bitronix

用于使用Bitronix实现JTA事务

spring-boot-starter-jta-narayana

Spring Boot Narayana JTA Starter

spring-boot-starter-mail

用于使用Java Mail和Spring框架email发送支持

spring-boot-starter-mustache

用于使用Mustache模板引擎构建MVC web应用

spring-boot-starter-quartz

Spring Boot Quartz Starter

spring-boot-starter-security

对Spring Security的支持

spring-boot-starter-security-reactive

对响应式Spring Security的支持

spring-boot-starter-test

用于测试Spring Boot应用,支持常用测试类库,包括JUnit, Hamcrest和Mockito

spring-boot-starter-thymeleaf

用于使用Thymeleaf模板引擎构建MVC web应用

spring-boot-starter-validation

用于使用Hibernate Validator实现Java Bean校验

spring-boot-starter-web

用于使用Spring MVC构建web应用,包括RESTful。Tomcat是默认的内嵌容器

spring-boot-starter-web-services

对Spring Web服务的支持

spring-boot-starter-webflux

提供用Spring框架创建webflux应用的支持

spring-boot-starter-websocket

用于使用Spring框架的WebSocket支持构建WebSocket应用

表 13.2. Spring Boot生产级starters

名称

描述

Pom

spring-boot-starter-actuator

用于使用Spring Boot的Actuator,它提供了production ready功能来帮助你监控和管理应用程序

最后,Spring Boot还包含以下用于排除或交换某些特定技术方面的starters:

表 13.3. Spring Boot技术性starters

名称

描述

Pom

spring-boot-starter-jetty

spring-boot-starter-log4j2

spring-boot-starter-logging

用于使用Logback记录日志,默认的日志starter

spring-boot-starter-reactor-netty

使用Reactor Netty做为内嵌的HTTP服务器

spring-boot-starter-tomcat

spring-boot-starter-undertow

用于使用JAX-RS和Jersey构建RESTful web应用,可使用替代

用于使用JOOQ访问SQL数据库,可使用或替代

除了应用程序starters,以下starters可用于添加的功能:

用于使用Jetty作为内嵌servlet容器,可使用替代

用于使用Log4j2记录日志,可使用代替

用于使用Tomcat作为内嵌servlet容器,使用的默认servlet容器

用于使用Undertow作为内嵌servlet容器,可使用替代

注:查看GitHub上位于spring-boot-starters模块内的,可以获取到一个社区贡献的其他starters列表。

创建自己的starter
production ready
README文件
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
spring-boot-starter-web
Pom
spring-boot-starter-data-jpa
spring-boot-starter-jdbc
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
Pom
spring-boot-starter-tomcat
Pom
spring-boot-starter-logging
Pom
Pom
Pom
spring-boot-starter-web
Pom
spring-boot-starter-tomcat
Pom