IDEA 创建 Spring Boot 可选依赖说明

裴昕
2023-12-01

IDEA 创建 Spring Boot 项目时可选依赖说明

一、Developer Tools

  1. Spring Native [Experimental]

    提供 GraalVM 编译支持,GraalVM 是一个编译器,实验版。

  2. Spring Boot DevTools

    提供快速应用程序重启、实时加载和配置。

  3. Lombok

    它是一个Java注解库,提供一些有用的注解,例如:

    @Setter :在类或字段上注解,为字段生成setter方法

    @Getter :在类或字段上注解,为字段生成getter方法

    @Data: 在类上注解,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

  4. Spring Configuration Processor

    在使用自定义配置文件时(例如application.properties/.yml文件)提供上下文帮助和代码完成。

二、Web

  1. Spring Web

    使用 Spring MVC 构建 Web 应用程序,包含 RESTful 应用程序。使用 Apache Tomcat 作为默认的嵌入式容器。创建 Web 应用时必选,开发时常用的一些注解也在这个包里面,例如:@Controller、@RestController、@PostMapping、@GetMapping、@Service。

  2. Spring Reactive Web

    使用 Spring WebFlux 和 Netty 构建响应式 web 应用程序。

  3. Spring GraphQL

    为 Spring 提供 GraphQL(图状数据语言)和 GraphQL Java 支持。GraphQL 最大的优势是查询图状数据,相当于把后端当做数据库,把前端当做服务端。图状数据是一种结构,例如评论关联,加了 QL 是指图状语言。

  4. Rest Repositories

    通过Spring Data REST在REST上公开Spring数据存储库,Rest 是一种软件框架风格,有别于 MVC 架构。

  5. Spring Session

    提供用于管理用户会话信息的APl和实现。

  6. Rest Repositories HAL Explorer

    在你的浏览器上浏览 Spring Data REST 存储库。

  7. Spring HATEOAS

    提供 REST 最高层次超媒体应用状态引擎支持,要了解 HATEOAS 就得先去了解 REST 4 个层次。这个服务说白了前端向后端发起请求,后端会返回额外的参数(links)。

  8. Spring Web Services

    促进契约优先 SOAP (Simple Object Access Protocol)开发。

  9. Jersey

    用 Java 开发 RESTful Web 服务的框架,该框架提供对 JAX-RS (Java API for RESTful Web Services)的支持。

  10. Vaadin

    允许你使用纯 Java 编写 UI 的 Web 框架。

三、Template Engines

  1. Thymeleaf

    一个现代化的服务端 Java 模板引擎。

  2. Apache Freemarker

    Java 库根据模板和更改的数据生成文本输出。

  3. Mustache

    无逻辑模板,只有标签。

  4. Groovy Templatess

    Groovy 模板引擎。Groovy 基于 JVM 的语言。

四、Security

  1. Spring Security

    高度定制化权限控制和访问的控制安全框架。

  2. OAuth2 Client

    Spring Boot 集成开放授权/开放 ID 客户端功能。

  3. OAuth2 Resource Server

    Spring Boot 集成开放授权资源服务器功能。

  4. Spring LDAP

    轻型目录访问协议,统一认证的解决方案,有多个平台只需要一个账号。

  5. Okta

    Okta 也是一种统一认证解决的方案。

五、SQL

  1. JDBC API

    提供定义客户端如何连接、查询数据库和数据库连接API。

  2. Spring Data JPA

    用于创建数据访问层和跨存储持久化数据连通接口,用于 Spring Data 和 Hibernate。Spring Data 是一系列家族。

  3. Spring Data JDBC

    持久化 SQL 数据在 JDBC 计划中,用于 Spring Data。支持高级队列和数据类型。

  4. Spring Data R2DBC

    提供反应式关系型数据库连通支持。R2DBC 是一项 API 规范计划,实现数据库厂商访问关系数据库,由 Spring 官方提出。补充,R2DBC 是反应式关系数据库连接,是一个开发规范,将反应式编程 API 引入关系型数据库。

  5. MyBatis Framework

    支持客制化 SQL 的数据持久化框架,内置存储过程和高级映射。对象存储过程和 SQL 语句可以使用XML描述或注解实现。

  6. Liquibase Migration

    提供Liquibase 数据库迁移和资源控制库。Liquid Database for Mac 才是 Mac 提供的液体数据库,它真的是用来管理液体数据。

  7. Flyway Migration

    提供数据库版本的迁移和控制,数据库界的 SVN/Git 版本控制。

  8. JOOQ Access Layer

    提供 JOOQ 系列访问层。JOOQ 是一个 ORM 型持久化框架(对象关系映射),可以给你的数据库生成 Java 代码,还可以通过类型安全 SQL 流畅的构建 API。

  9. IBM DB2 Driver

    访问 IBM DB2 数据库的 JDBC 驱动。DB2 是 IBM 开发的一种大型关系型分布式决方案数据库。

  10. Apache Derby Database

    是一个开源的完全用 Java 实现的关系型数据库。MySQL 是用 C++ 实现的关系型数据库,一个道理。

  11. H2 Database

    提供一个快速且运行在内存中的数据库支持。H2 也是用 Java 写的关系型数据库,可以嵌入 Java 程序也可以作为一个单独的数据库。

  12. HyperSQL Database

    百分之百绝对轻量的 Java 数据库引擎。别名 HSQLDB ,具有标准的 SQL 语法和 Java 接口,不适用于大型数据,适用于测试、演示的 Java 程序项目。

  13. MariaDB Driver

    提供 Maria 的 JDBC和 R2DBC 驱动,MySQL 被收购后,作者新开的一个 “MySQL”。

  14. MS SQL Server Driver

    提供给每一个 Java 应用程序微软数据库服务的 JDBC和 R2DBC 驱动(SQLServer、Azure)。

  15. MySQL Driver

    提供 MySQ 的 JDBC和 R2DBC 驱动。想想 application.yml 中 driver-class-name 填的驱动包,其它的驱动都是这么用的。

  16. Oracle Driver

    提供一个 JDBC 驱动给Oracle。

  17. PostgreSQL Driver

    以 PostgreSQL 规范标准提供 JDBC 驱动,这个数据库跟 Java 独立不搭噶。

六、NoSQL

  1. Spring Data Redis (Access+Driver)

    提供高级线程安全且包含同步、异步、反应式交互的 Redis 客户端驱动,支持集群、哨兵、流水线、自动重连。

  2. Spring Data Reactive Redis

    只提供了 Redis 反应式交互驱动,不需要太多功能就用这个包。

  3. Spring Data MongoDB

    提供 MongoDB 驱动。MongoDB 可以灵活的存储类似 JSON 那样的数据,相较 Redis 查询起来更像持久化在本地的关系型数据库,非要比较性能肯定比不过 Redis,新出了一个 RedisJson 比 MongoDB 快很多倍。

  4. Spring Data Reactive MongoDB

    提供异步流处理非阻塞的 MongoDB 驱动。

  5. Spring Data Elasticsearch (Access+Driver)

    提供 Cassandra 驱动和服务,Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。

  6. Spring Data for Apache Cassandra

    提供 Cassandra 服务,是一个免费开源的分布式 NoSQL 高扩展和高性能的数据库管理系统。

  7. Spring Data Reactive for Apache Cassandra

    提供 Cassandra 服务,以反应式方式访问 Cassandra NoSQL 数据库。

  8. Spring Data Couchbase

    提供 Couchbase 服务,内存优先的分布式开发 NoSQL 数据库。

  9. Spring Data Reactive Couchbase

    提供 Couchbase 服务,以反应式方式访问 Couchbase NoSQL 数据库。

  10. Spring Data Neo4j

    开源NoSQL数据库,存储由节点组成的图形结构的数据,通过关系连接。

  11. Spring for Apache Geode

    数据管理平台,提供实时、一致的云架构访问数据。

七、Messaging

  1. Spring Integration

    增加了对企业集成模式的支持。支持轻量级消息传递,并支持通过声明式适配器与外部系统集成。

  2. Spring for RabbitMQ

    RabbitMQ 是一个实现了高级消息队列的代理软件。

  3. Spring for Apache Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统。

  4. Spring for Apache Kafka Streams

    使用Apache Kafka Streams构建流处理应用程序。

  5. Spring for Apache ActiveMQ 5

    提供 ActiveMQ JMS 支持。JMS(Java Message Service)是一个 Java 平台面向消息中间件的 API,用来在两个程序或分布式系统中发送消息。

  6. Spring for Apache ActiveMQ Artemis

    它是 ActiveMQ 的最新版。

  7. WebSocket

    提供构建简单网络协议和套接应用服务。

  8. RSocket

    带有 Spring 消息和 Netty 的应用程序。Netty 是由 JBOSS 提供的 Java 开源框架,提供异步、事件驱动的网络应用程序框架和工具,用于快速开发高性能、高可靠的网络服务器和客户端程序。

  9. Apache Camel

    Camel 能够在各种领域语言定义路由和中间规则。

  10. Solace PubSub+

    连接到 Solace PubSub+ 进行高级事件发布、订阅。

八、I/O

  1. Spring Batch

    Spring Batch 是一个批量处理应用框架,不是调度框架,需要和调度框架合作完成批处理任务。

  2. Validation

    使用 Hibernate 验证程序进行Bean验证。

  3. Java Mail Sender

    使用 Java Mail 和 Spring 框架中的 JavaMailSender 发送 email。

  4. Quartz Scheduler

    Quartz 是一个调度框架,用它完成调度工作。

  5. Spring cache abstraction

    缓存抽象概念,提供与缓存相关的操作,例如更新缓存内容的能力,但不提供实际的数据存储。

  6. Picocli

    Picocli 是一个强大轻量的命令行接口,用于构建命令行应用程序。

九、Ops

  1. Spring Boot Actuator

    支持内置(或自定义)端点,允许您监视和管理应用程序,如应用程序运行状况、指标、会话等。

  2. Codecentric’s Spring Boot Admin (Client)

    用于监控管理的软件,能够将 Actuator 中的信息进行界面展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时报警功能。

  3. Codecentric’s Spring Boot Admin (Server)

    应用程序作为 Spring Boot Admin Client 向 Server 注册。先搭建 Server ,再给项目搭建 Client 并注册到 Server 中。

十、Observability 可观察性应用

  1. Datadog

    将 Datadog 发布到 Micrometer 服务指标数据。Datadog 针对云的监控服务,通过 SaaS 的数据分析平台提供对服务器、数据库、工具和服务的监控。Micrometer 微测度量指标,可实现各种监控系统。

  2. Influx

    将 Influx 发布到 Micrometer 微测度量指标服务。Influx 是一个开源的时序型数据库,常用于存储系统监控数据,IoT 行业的实时数据等场景。IoT 指物联网,通过各种信息传感器等设备采集信息。

  3. Graphite

    将 Graphite 发布到 Micrometer 微测度量指标服务。Graphite 是一个采集网站实时信息并进行统计的开源项目,可以采集多种网站服务允许状态。

  4. New Relic

    将 New Relic 发布到 Micrometer 微测度量指标服务。New Relic 是一个很强大的服务器性能监控工具,专注于 SaaS 和 App 性能管理业务。

  5. Prometheus

    Prometheus 是一个开源的监控解决方案,用于收集和聚合指标作为时间序列数据,Promeheus 中的每一个项目都是一个指标时间,并带有它发生的时间戳。

  6. Sleuth

    可以通过 Spring Colud Sleuth 的日志进行分布式跟踪。

  7. Wavefront

    Wavefront 这是一个基于SaaS的指标监测和分析平台,可视化、查询和告警整个堆栈中的数据。

  8. Zipkin Client

    使用已安装的 Zipkin 和 Spring Cloud Sleuth Zipkin 进行分布式跟踪。

十一、Testing

  1. Spring REST Docs

    Spring REST Docs 可以帮你记录 RESTful 服务,同事还能生成标准的接口文档。

  2. Testcontainers

    提供轻量级的公共数据实例测试容器,可以运行在一个 Docker 容器中。

  3. Contract Verifier

    提供契约测试服务,支持微服务、云契约应用。

  4. Contract Stub Runner

    用于基于 HTTP/消息传递 的通信的存根运行程序。允许从RestDocs测试创建WireMock存根。RestDocs 可以生成 API 文档。WireMock 可模拟后端服务用于 Web 服务测试,WireMock 会创建一个 HTTP 服务运行 Web 服务以便测试。

  5. Embedded LDAP Server

    为在单元测试中运行 LDAP 服务器提供了一种平台无关的方式。LDAP 是一种存储方式,即轻量级目录存取协议。

  6. Embedded MongoDB Database

    为在单元测试中运行MongoDB提供了一种平台无关的方式。

十二、Spring Cloud

  1. Cloud Bootstrap

    非特定 Spring Cloud 特性,Cloud Native是一种应用程序开发风格,鼓励在持续交付和价值驱动开发领域开发方式。

  2. Function

    通过函数促进业务逻辑的实现,并支持跨无服务器提供商的统一编程模型,以及独立运行(本地或PaaS)的能力。

  3. Task

    允许用户使用 Spring Cloud 开发和运行短期的微服务。在本地、云中和 Spring 云数据流(Spring Cloud Data Flow)上运行它们。

十三、Spring Cloud Tools

  1. Open Service Broker

    构建 Spring Boot 应用程序的框架,该应用程序实现了开放式 Service Broker APl,它可以为运行在云计算原生平台(如 Cloud Foundry 、 Kubernetes 和 OpenShift )中的应用程序提供服务。

    Cloud Foundry 是业界第一个开源 PassS 云平台,开发人员能够在几秒钟内进行应用程序部署和扩展。

    Kubernetes 是一个开源的用于管理云平台多个主机上容器化的应用,目的是让部署容器化应用更加简单和高效。

    OpenShift 开发者和操作友好的Kubernetes发行版。

十四、Spring Cloud Config

  1. Config Client

    连接到 Spring Cloud 配置服务器以获取应用程序配置的客户端。

  2. Config Server

    通过Git、SVN或HashiCorp Vault对配置进行集中管理。

  3. Vault Configuration

    为分布式系统中的外部化配置提供客户端支持。使用 HashiCorp 的 Vault,可以在所有环境中管理应用程序的外部机密属性。

  4. Apache Zookeeper Configuration

    在应用程序中启用和配置公共模式,并使用基于 Apache Zookeeper 的组件构建大型分布式系统。提供的模式包括服务发现和配置。Zookeeper 是一个分布式应用程序协调服务。

  5. Consul Configuration

    启用和配置应用程序中的常见模式,并使用 Hashicorp 的 Consor 构建大型分布式系统。提供的模式包括服务发现、分布式配置和控制总线。Hashicorp 的 Consor 是一个多云平台,中国用不了企业版。

十五、Spring Cloud Discovery

  1. Eureka Discovery Client

    一种基于REST的服务,用于定位服务,以实现中间层服务器的负载平衡和故障切换。

  2. Eureka Server

    Spring Cloud Netflix Eureka 服务器。Eureka 是 Netflix 开发的服务发现框架,本身基于 REST 服务用于定位 AWS 域的中间层服务,以达到负载均很和中间层服务故障转移目的。Spring Cloud 把它集成在 Spring Cloud Netflix 里面。

  3. Apache Zookeeper Discovery

    提供 Zookeeper 服务发现。

  4. Cloud Foundry Discovery

    提供 Cloud Foundry 服务发现。

  5. Consul Discovery

    提供 Hashicorp Consult 服务发现。

 类似资料: