SpringBoot:模块探究之spring-boot-starters

news2024/11/16 17:38:19

Spring Boot Starters 是一组方便的依赖描述符,您可以将它们包含在您的应用程序中。您可以获得所需的所有 Spring 和相关技术的一站式服务,而无需搜索示例代码和复制粘贴大量依赖项描述符。

例如,如果想使用 Spring 和 JPA 进行数据库访问,只需将 spring-boot-starter-data-jpa 这一依赖项包含在项目中就可以开始了。

~

本篇内容包括:Spring Boot Starters 模块介绍、Spring Boot Starters 盘点


文章目录

    • 一、Spring Boot Starters 模块介绍
        • 1、关于 Spring Boot Starters 模块
        • 2、spring-boot-starters 源码地址
    • 二、Spring Boot Starters 盘点
        • 1、application starters
        • 2、production starters
        • 3、technical starters


一、Spring Boot Starters 模块介绍

1、关于 Spring Boot Starters 模块

Spring Boot Starters 是一组方便的依赖描述符,您可以将它们包含在您的应用程序中。您可以获得所需的所有 Spring 和相关技术的一站式服务,而无需搜索示例代码和复制粘贴大量依赖项描述符。

例如,如果想使用 Spring 和 JPA 进行数据库访问,只需将 spring-boot-starter-data-jpa 这一依赖项包含在项目中就可以开始了。

2、spring-boot-starters 源码地址

spring-boot-starters 位于 spring-boot 项目中。

spring-boot-starters 在 源码地址为:https://github.com/spring-projects/spring-boot/tree/v2.1.0.RELEASE/spring-boot-project/spring-boot-starters

image-20221221194816277


二、Spring Boot Starters 盘点

1、application starters

# 这一个表格是 Spring Boot 所有应用程序级的 Starters

Starter 名称Starter 描述
spring-boot-starter核心 Starter,包括自动配置、日志及 YAML 支持等
spring-boot-starter-activemq集成 Apache ActiveMQ,基于 JMS 的消息队列
spring-boot-starter-artemis集成 Apache Artemis,基于 JMS 的消息队列
spring-boot-starter-amqp集成 Spring AMQP 和 Rabbit MQ 的消息队列
spring-boot-starter-aop集成 Spring AOP 和 AspectJ 面向切面编程
spring-boot-starter-batch集成 Spring Batch(批处理)
spring-boot-starter-cache集成 Spring Cache(缓存)
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-solr集成 Apache Solr(搜索引擎)结合 Spring Data Solr
spring-boot-starter-data-jdbc集成 Spring Data JDBC
spring-boot-starter-data-jpa集成 Spring Data JPA 结合 Hibernate
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-r2dbc集成 Spring Data R2DBC
spring-boot-starter-data-redis集成 Redis(内存数据库)结合 Spring Data Redis 和 Lettuce 客户端
spring-boot-starter-data-redis-reactive集成 Redis(内存数据库)结合 Spring Data Redis reactive 和 Lettuce 客户端
spring-boot-starter-data-rest集成 Spring Data REST 暴露 Spring Data repositories 输出 REST 资源
spring-boot-starter-thymeleaf集成 Thymeleaf 视图构建 MVC web 应用
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 结合 HikariCP 连接池
spring-boot-starter-jersey集成 JAX-RS 和 Jersey 构建 RESTful web 应用,是 spring-boot-starter-web 的一个替代 Starter
spring-boot-starter-jooq集成 jOOQ 访问 SQL 数据库,是 spring-boot-starter-data-jpa 或者 spring-boot-starter-jdbc 的替代 Starter
spring-boot-starter-json用于读写 JSON
spring-boot-starter-jta-atomikos集成 Atomikos 实现 JTA 事务
spring-boot-starter-jta-bitronix集成 Bitronix 实现 JTA 事务( 从 2.3.0 开始标识为 Deprecated
spring-boot-starter-mail集成 Java Mail 和 Spring 框架的邮件发送功能
spring-boot-starter-mustache集成 Mustache 视图构建 web 应用
spring-boot-starter-security集成 Spring Security
spring-boot-starter-oauth2-client集成 Spring Security’s OAuth2/OpenID 连接客户端功能
spring-boot-starter-oauth2-resource-server集成 Spring Security’s OAuth2 资源服务器功能
spring-boot-starter-quartz集成 Quartz 任务调度
spring-boot-starter-rsocket构建 RSocket 客户端和服务端
spring-boot-starter-test集成 JUnit Jupiter, Hamcrest 和 Mockito 测试 Spring Boot 应用和类库
spring-boot-starter-validation集成 Java Bean Validation 结合 Hibernate Validator
spring-boot-starter-web集成 Spring MVC 构建 RESTful web 应用,使用 Tomcat 作为默认内嵌容器
spring-boot-starter-web-services集成 Spring Web Services
spring-boot-starter-webflux集成 Spring Reactive Web 构建 WebFlux 应用
spring-boot-starter-websocket集成 Spring WebSocket 构建 WebSocket 应用

2、production starters

除了上面的应用程序级 starters,还有下面的生产级 Starters 能被用于线上/生产功能:

Starter 名称Starter 描述
spring-boot-starter-actuator集成 Spring Boot Actuator,提供生产功能以帮助监控和管理应用程序

这个意味着和任何技术、任何业务没关系,只要用了 Spring Boot 框架,上了生产环境就能使用,也不是只有生产才能使用,只是在生产环境使用更能体验它的意义。

3、technical starters

除了应用程序和生产 Starters,Spring Boot 还包括下面的技术类 Starters,用于帮助你排除或者替换指定的框架或技术:

Starter 名称Starter 描述
spring-boot-starter-jetty集成 Jetty 作为内嵌的 servlet 容器,可用于替代 spring-boot-starter-tomcat
spring-boot-starter-log4j2集成 Log4j2 日志框架,可用于替代 spring-boot-starter-logging
spring-boot-starter-logging集成 Logback 日志框架,这个也是默认的日志 Starter
spring-boot-starter-reactor-netty集成 Netty 作为内嵌的响应式 HTTP 服务器
spring-boot-starter-tomcat集成 Tomcat 作为内嵌的 servlet 容器,这也是默认的 servlet 容器 starter 被集成 spring-boot-starter-web 里面
spring-boot-starter-undertow集成 Undertow 作为内嵌的 servlet 容器,可用于替代 spring-boot-starter-tomcat

这个表格的技术也很熟悉了,Spring Boot 默认内嵌 Servlet 容器为 Tomcat,如果你想换成 Jetty、Undertow 或者其他容器,又或者你想换成其他的日志框架,都在这个表格里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/111904.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot整合Redis实现几种自定义数据序列化存储方式

JDK自带序列化方式 在Java中RedisTemplete提供了统一的API来操作Redis,比如插入一条String类型的数据,我可以用 redisTemplate.opsForValue().set("name", "美羊羊"); SpringDataRedis可以接收任何类型的对象并将其转成Redis可以处…

小布助手,身入大千世界

在2018年—2019年,AI智能助手一度火热,成了科技行业的全新风口。智能音箱与手机中,我们能看到各种各样的智能助手横空出世,一度成为产品标配。但随着时间缓缓冲刷,就像所有科技风口一样,有的AI智能助手随着…

一种非侵入式幂等性的Java实现

今天我们来谈谈什么是幂等性? 引用百度百科的解析如下: 幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。 在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同…

3ds Max:标准几何体

三维软件中一般有许多非常复杂的命令,能够完成非常复杂的图形运算,但其实许多绚丽的图形也是由最基本的几何体构成,许多复杂的命令也是基本的运算程序的集合,就像是砖块,构成了复杂的大厦。任何一个几何体,…

【QGIS入门实战精品教程】3.4:QGIS创建、连接、打包GeoPackage数据库及数据入库案例详解

GeoPackage(以下简称gpkg),内部使用SQLite实现的一种单文件、与操作系统无关的地理数据库。在QGIS中可以很方便的实现GeoPackage的创建与连接等操作。 文章目录 一、QGIS创建GeoPackage1. 创建数据库2. 数据入库二、矢量数据打包为GeoPackage1. 加载shp文件2. 使用QGIS打包图…

微信键盘好用吗?

相信大家在手机上已经安装了一款自己比较熟练使用地输入法,最近微信推出了微信键盘,作为一名产品经理,当然不能错过试用它,我在第一时间下载进行了使用, 下面是我使用了几天的感受,与大家分享一下。 一、体…

2023年5大网络安全趋势加速发展

©网络研究院 Netwrix发布了2023年将影响各种规模组织的关键网络安全趋势。以下是你需要注意的五个具体趋势: 网络犯罪的业务将进一步专业化 Emotet、Conti和Trickbot等恶意软件的回归表明网络雇佣犯罪的扩张。特别是,勒索软件即服务的增长使没有深厚技术技能…

VSCode 最全实用插件

一、必备插件 🌾Chinese(中文) Settings Sync(配置同步到云端) 可以让我们的vscode配置同步到云端,当我们跟换电脑或者再次安装vscode的时候,只需要登录账号即可同步配置了 wakatime&#xf…

Linux_日志

1.日志的介绍 1.日志文件是重要的系统信息文件 ,其中记录了许多重要的系统事件,包括用户的登录信息、系统的 启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。 2.日志对于安全来说也很重要 ,它记录了系统每天发生的各种事情,通过日志来检查错误发生的…

Golang 【basic_leaming】3 流程控制

阅读目录Go 语言 if else (条件判断)Go 语言 if else 条件判断代码示例if 的特殊写法Go 语言 for(循环)for 循环 - 初始语句for 循环 - 条件表达式1 更美观的死循环写法2 只有一个条件的 for 循环for 循环 - 结束语句Go 语言 for range (键值循环)for ra…

前端自动化测试精讲

单元测试 端对端测试 持续集成方案,在项目中落地前端自动化测试 作者介绍 祯民,字节跳动前端开发工程师,掘金小册《SSR实战:官网开发指南》作者,公众号「祯民讲前端」作者。曾负责 抖音前端技术团队官网 和 字节官网…

RV1126笔记十二:实现RTMP单路拉流

若该文为原创文章,转载请注明原文出处。 一、介绍 相比推流,拉流就简单了一点,只需要连接RTMP服务器,获取流,把数据解码出来显示和播放就可以,使用的是易百纳板子,测试时音频输出是不正常的,所以只解析了视数据,不处理音频。如果想测试音频,建议用其他开发板,正点…

TikTok 加速团结独立站,跨境电商的又一次红利期?

TikTok近年来在国际上非常流行。2021年8月,TikTok的全球下载量首次超过Facebook,成为全球最大的下载量。TikTok的诞生打破了海外社交媒体的垄断,TikTok营销成为许多跨境卖家的重点之一。 封号事件发生后,许多跨境卖家开始向独立站…

我的周刊(第071期)

我的信息周刊,记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。🎯 项目Free-TVUrl-Merge[1]免费 TvBox 影视站聚合&#xf…

H7068 DIGITAL SYSTEMS AND MICROPROCESSOR DESIGN: COURSEWORK 2022 verilog-仿真

内容: 给cpubank写testbench: 1.the testbench have test a variety of operations the sequence described: i) Reset: The test bench should first reset the register bank. The reset is synchronous. It should also set rrd1, rrd2, d, rwr, rwren to zero. ii) Stor…

自然语言处理NLP——图神经网络与图注意力模型(GNN、GCN、GAT)

目录 系列文章目录 一、图神经网络 1.图与图嵌入 2.GNN动机 2.1 CNN的缺陷与非结构性数据 2.2 图嵌入的缺陷 3.GNN详解 3.1 GNN简介 3.2 GNN模型 3.3 GNN框架 3.4 GNN局限与优化 二、图卷积神经网络 1.卷积 2.GCN详解 2.1 GCN动机 2.2 GCN简介 2.3 GCN思想与模…

前端(htmlCSSJavaScript)基础

关于前端更多知识请关注官网:w3school 在线教程全球最大的中文 Web 技术教程。https://www.w3school.com.cn/ 1.HTML HTML(HyperText Markup Language):超文本标记语言 超文本:超越了文本的限制,比普通文本更强大。除了文字信息…

Xcode 如何在 silicon Mac 上调试 iOS 版本的 App

功能需求 自从 M1 处理器 Mac 推出以后,我们可以用原生方式在 silicon Mac 系统上运行 iPhone 或 iPad 上的 App。 然而,当发现上架后的 iPhone / iPad App 在 silicon Mac 上运行表现异常时,我们如何在 Xcode 中调试它们呢?比如:在 silicon Mac 中 SwiftUI 弹出的 shee…

跳表Skiplist

介绍 对于有n个元素的链表,会分成log(n1),比如下图为四层,最下面是所有元素都有,往上面走隔着空元素越来越少,保证查询效率为logn 如何插入元素: 最关键的就是新插入的节点应该跨越多少层**——>由抛硬…

解析 Navicat 最受欢迎的功能 | SQL 查询编辑器与 SQL 创建工具

近期发起的线上投票调查中,我们很高兴地看到:SQL 查询编辑器、SQL 创建工具已成为用户最常用的功能之一,并且深受用户欢迎!在人类社会发展的历史长河中,离不开工具的演进与发展。而 Navicat 作为领先的数据库管理开发工…