Spring Boot 4常用依赖包解析与场景搭配

26 阅读11分钟

Spring Boot 依赖与解析

1. Developer Tools (开发者工具)

主要用于提升开发效率,通常在开发环境使用。

依赖名称中文翻译详细解析 (小白向)
GraalVM Native SupportGraalVM 原生支持作用:把你的 Java 程序编译成可以直接在操作系统上运行的机器码(exe 等),而不是依赖 JVM 运行。
好处:启动速度极快(毫秒级),内存占用极小。适合做云原生微服务。
GraphQl DGS Code GenerationGraphQL DGS 代码生成作用:Netflix 开发的工具,根据 GraphQL 的 schema 文件自动生成 Java 代码。
好处:不用手写重复的代码,提高开发效率。
Spring Boot DevTools开发工具作用必装神器。它能让你的代码改完后自动重启项目(热部署)。
好处:不用每次改一行代码就手动点停止再启动,省下的时间可以喝杯咖啡。
LombokLombok作用必装神器。通过注解(如 @Data)自动生成 Getter/Setter、构造函数等代码。
好处:让你的 Java 类看起来非常干净,不用写几十行样板代码。
Spring Configuration Processor配置处理器作用:当你写自定义配置属性(@ConfigurationProperties)时,它会在 IDE 里提供自动补全提示。
好处:写配置文件时有智能提示,不容易写错。
Docker Compose SupportDocker Compose 支持作用:允许 Spring Boot 在启动时自动管理 Docker 容器(比如自动启动一个 MySQL 或 Redis 容器)。
好处:本地开发时,不用手动去装数据库,项目跑起来数据库就有了。
Spring Modulith模块化架构支持作用:帮助你构建模块化的单体应用。
好处:在微服务太复杂、单体太乱的时候,提供一种折中的、结构清晰的架构方式。

2. Web (Web 开发)

构建网站、API 接口的核心依赖。

依赖名称中文翻译详细解析 (小白向)
Spring WebSpring Web (MVC)作用核心中的核心。用于构建传统的 RESTful API 或 Web 应用。基于 Servlet 技术。
场景:90% 的后端项目都会选这个。
Spring Reactive Web响应式 Web (WebFlux)作用:基于 Netty 的非阻塞式 Web 框架。
场景:适合高并发、IO 密集型场景(如聊天室、实时推送),但不适合初学者,学习曲线陡峭。
Spring GraphQLGraphQL 支持作用:支持构建 GraphQL API。相比 REST API,它允许客户端只请求它需要的数据。
场景:适合前端复杂、需要灵活查询数据的场景。
Rest RepositoriesREST 数据仓库作用:自动把你的 Spring Data Repository 暴露为 REST API。
场景:快速原型开发,不用写 Controller 就能直接操作数据库。
Spring HATEOASHATEOAS 支持作用:在你的 API 响应中添加链接(Hypermedia),告诉客户端下一步能做什么。
场景:构建符合 REST 成熟度模型的高级 API。
Spring Web ServicesWeb 服务 (SOAP)作用:用于开发基于契约(Contract-first)的 SOAP Web 服务。
场景:主要对接老旧的企业级系统(银行、政务等)。
JerseyJersey (JAX-RS)作用:另一个实现 JAX-RS 标准的框架(Spring Web 是 Spring 自己的实现)。
场景:如果你习惯了标准的 Java EE 方式开发 REST API 可以用它。
VaadinVaadin作用:用 Java 写前端界面。
场景:全栈 Java 开发者的福音,不用写 HTML/JS 就能做出漂亮的后台管理系统。
SpringDoc OpenAPI WebOpenAPI (Swagger)作用必装。自动生成 API 文档,并提供在线测试界面(Swagger UI)。
好处:前端看文档不用靠嘴问,直接在网页上测接口。
ThymeleafThymeleaf 模板引擎作用:服务端渲染 HTML 的技术。把数据填入 HTML 模板返回给浏览器。
场景:传统的 Java Web 开发,或者发邮件模板。现在前后端分离项目中用得少了。
Apache FreemarkerFreemarker 模板引擎作用:同上,另一种模板引擎,语法略有不同。
Spring Security安全框架作用必装。处理登录、注册、权限控制(谁能访问哪个接口)。
场景:任何需要安全保护的系统。
OAuth2 Client / Server / Resource ServerOAuth2 支持作用:实现第三方登录(如微信登录、Google 登录)或保护微服务之间的调用安全。
SAML 2.0 SecuritySAML 安全作用:企业级单点登录(SSO)标准。
场景:大公司内网系统常用。
LDAP SecurityLDAP 安全作用:基于目录服务的认证(如微软 AD 域)。
场景:企业内部系统对接公司账号体系。

3. SQL (关系型数据库)

操作 MySQL, PostgreSQL 等数据库的依赖。

依赖名称中文翻译详细解析 (小白向)
JDBC APIJDBC 接口作用:Java 连接数据库的最底层标准接口。
R2DBC API响应式 JDBC作用:Reactive 编程模式下的数据库连接接口(非阻塞)。
Spring Data JPAJPA 数据访问作用必装。基于 Hibernate,让你不用写 SQL,通过操作对象(Object)来操作数据库。
好处:开发效率高,适合复杂业务逻辑。
Spring Data JDBCJDBC 数据访问作用:比 JPA 更轻量级,不缓存对象,直接映射 SQL。适合简单场景。
Flyway / Liquibase数据库版本控制作用必装。像 Git 管理代码一样管理数据库表结构的变化。
好处:团队协作时,保证大家的数据库结构一致。
iBatis / MyBatis (图中未直接显示,但通常有 MyBatis 框架)半自动 ORM作用:让你手写 SQL,但帮你处理结果映射。国内大厂非常流行。
JOOQ Access LayerJOOQ作用:类型安全的 SQL 构建器。
Database Drivers (MySQL, PostgreSQL, Oracle, etc.)数据库驱动作用:连接具体数据库的“插头”。你用 MySQL 就选 MySQL Driver。

4. NoSQL (非关系型数据库)

Redis, MongoDB 等。

依赖名称中文翻译详细解析 (小白向)
Spring Data RedisRedis 支持作用:操作 Redis(内存数据库)。
场景:做缓存(加速查询)、分布式锁、计数器。
MongoDBMongoDB 支持作用:操作 MongoDB(文档型数据库)。
场景:存储结构不固定的数据(如日志、用户画像)。
ElasticsearchES 支持作用:操作 Elasticsearch。
场景:全文检索、日志分析。
CassandraCassandra 支持作用:操作 Cassandra(分布式列存储)。
场景:海量数据写入(如物联网数据)。
Neo4jNeo4j 支持作用:操作图数据库。
场景:社交网络关系、知识图谱。
CouchbaseCouchbase 支持作用:操作 Couchbase。高性能文档数据库。

5. Messaging (消息队列)

系统之间异步通信。

依赖名称中文翻译详细解析 (小白向)
Spring for RabbitMQRabbitMQ 支持作用:连接 RabbitMQ。
场景:最常用的消息队列,用于解耦系统(如:下单后异步发短信)。
Spring for Apache KafkaKafka 支持作用:连接 Kafka。
场景:超高吞吐量场景(如:日志收集、大数据流处理)。
ActiveMQ / ArtemisActiveMQ 支持作用:连接 ActiveMQ。老牌消息队列。
Spring for Apache PulsarPulsar 支持作用:连接 Pulsar。新一代云原生消息队列。
WebSocketWebSocket 支持作用:建立浏览器和服务器的长连接。
场景:实时聊天、股票行情推送。
RSocketRSocket作用:一种应用层协议,支持 Reactive Streams。
Solace PubSub+Solace 支持作用:连接 Solace 消息平台。企业级高性能消息路由。

6. I/O (输入/输出与其他)

杂项工具。

依赖名称中文翻译详细解析 (小白向)
Spring Batch批处理作用:处理大量数据的框架。
场景:每天凌晨跑报表、数据迁移、清洗数据。
Validation参数校验作用必装。校验前端传来的数据(如:邮箱格式对不对,密码不能为空)。
Java Mail Sender邮件发送作用:发邮件。
Quartz Scheduler定时任务作用:企业级定时任务框架(比 @Scheduled 更强大,支持集群)。
Spring Cache Abstraction缓存抽象作用:统一缓存接口。你可以用注解 @Cacheable 轻松开启缓存,底层换 Redis 还是 Caffeine 都不用改代码。
Spring Shell命令行作用:把 Spring Bean 变成命令行工具。
Spring gRPC ServergRPC 服务端作用:高性能 RPC 框架,基于 HTTP/2。微服务内部通信常用。

7. Ops & Observability (运维与监控)

生产环境监控。

依赖名称中文翻译详细解析 (小白向)
Spring Boot Actuator健康检查作用必装。暴露 /actuator/health 等端点,告诉监控系统你的服务还活着。
Codecentric's Spring Boot Admin管理界面作用:给 Actuator 提供一个漂亮的可视化 Web 界面,查看日志、线程堆栈等。
Prometheus / Grafana / Zipkin监控链路追踪作用:收集指标(Prometheus)和追踪请求链路(Zipkin),用于排查性能问题。
OTel / New Relic / Datadog第三方监控作用:对接商业或开源的监控平台。

8. Testing (测试)

写单元测试和集成测试。

依赖名称中文翻译详细解析 (小白向)
Spring REST DocsREST 文档作用:根据测试代码自动生成 API 文档(AsciiDoc)。
Testcontainers测试容器作用神器。在测试时自动启动 Docker 容器(如真实的 MySQL)进行测试,不用 Mock 数据,测试更真实。
Contract Verifier契约测试作用:保证生产者和消费者之间的接口契约一致。
ArchUnit架构测试作用:用代码测试代码架构(例如:测试 Controller 层是否调用了 Service 层,防止层级混乱)。

9. Spring Cloud (微服务全家桶)

构建分布式系统。

依赖名称中文翻译详细解析 (小白向)
Cloud Config配置中心作用:把配置文件放在 Git 或数据库里,所有微服务从这读取。改配置不用重启服务。
Function函数式编程作用:提供统一的编程模型,让代码可以在本地、云函数(AWS Lambda)等地方运行。
Task任务调度作用:Spring Cloud Task。运行短命的微服务任务(跑完就退出)。
Cloud Vault密钥管理作用:对接 HashiCorp Vault,安全地管理密码、密钥。
Eureka Discovery Client服务注册发现作用:微服务启动后向 Eureka 报到,其他服务来 Eureka 找它。
Gateway网关作用必装。所有请求的入口,负责路由转发、限流、鉴权。
OpenFeign声明式 HTTP 客户端作用必装。让你像调用本地方法一样调用远程微服务的接口。
Resilience4j熔断器作用:防止雪崩效应。如果下游服务挂了,快速失败或降级,保护上游服务。
Cloud Stream消息流作用:统一消息编程模型。代码不用改,底层切换 RabbitMQ 还是 Kafka。

10. AI (人工智能 - 新增热门板块)

Spring AI 相关,利用大模型开发应用。

依赖名称中文翻译详细解析 (小白向)
Spring AI OpenAI / Azure OpenAIOpenAI 支持作用:对接 ChatGPT (OpenAI) 或 Azure 的大模型 API。
Anthropic Claude AIClaude 支持作用:对接 Anthropic 的 Claude 大模型。
Amazon Bedrock AIBedrock 支持作用:对接 AWS 的 Bedrock 平台(聚合了多种大模型)。
Model Context Protocol (MCP)模型上下文协议作用:一种新标准,让 AI 模型能安全地访问本地数据和工具。
Vector Databases (Redis, PostgreSQL, etc.)向量数据库作用RAG (检索增强生成) 核心。存储文本的向量表示,用于让 AI 搜索相关知识。
Embeddings嵌入模型作用:把文本转换成向量。
Document Readers (PDF, Markdown, etc.)文档读取器作用:读取 PDF、Markdown 等文件,提取内容喂给 AI。

🚀 场景推荐:你应该选哪些包?

作为小白,面对这么多包容易晕。以下是几种常见开发场景的“抄作业”清单:

场景 1:最基础的 Web 后端开发 (做接口给前端调)

这是最常见的场景,比如开发一个博客系统、电商后台。

  • 必选
    • Spring Web (核心)
    • Spring Data JPA (操作数据库)
    • MySQL DriverPostgreSQL Driver (数据库驱动)
    • Lombok (简化代码)
    • Validation (参数校验)
    • Spring Boot DevTools (热部署,开发爽)
    • SpringDoc OpenAPI Web (自动生成 Swagger 文档)

场景 2:需要缓存和异步处理

比如你的网站访问量大了,需要 Redis 做缓存,或者发完订单要异步发短信。

  • 在场景 1 基础上增加
    • Spring Data Redis (缓存)
    • Spring for RabbitMQSpring for Apache Kafka (消息队列)
    • Spring Cache Abstraction (方便地使用缓存注解)

场景 3:微服务架构

你要开发很多个服务,它们需要互相调用,还需要网关。

  • 在场景 1 基础上增加
    • Gateway (API 网关)
    • OpenFeign (服务间调用)
    • Eureka Discovery ClientNacos (服务注册发现,Spring Cloud Alibaba 需额外引入)
    • Resilience4j (熔断限流)
    • Spring Boot Actuator (监控)

场景 4:AI 应用开发 (RAG - 知识库问答)

你想做一个基于公司文档的智能问答机器人。

  • 必选
    • Spring Web (提供 API)
    • Spring AI OpenAI (或者 Azure/Bedrock,看你用哪个大模型)
    • Vector Database (比如 RedisPostgreSQL,用于存向量数据)
    • Document Readers (比如 PDF Document Reader,用于读取你的文档)

场景 5:企业级后台管理系统

  • 在场景 1 基础上增加
    • Spring Security (安全)
    • Spring Security OAuth2 Resource Server (如果是前后端分离,用 JWT 校验)
    • Flyway (管理数据库版本)
    • Codecentric's Spring Boot Admin (如果不想买商业监控,用这个看服务状态)