IDEA 创建 Spring Boot 项目时可选依赖说明
一、Developer Tools
-
Spring Native [Experimental]
提供 GraalVM 编译支持,GraalVM 是一个编译器,实验版。
-
Spring Boot DevTools
提供快速应用程序重启、实时加载和配置。
-
Lombok
它是一个Java注解库,提供一些有用的注解,例如:
@Setter :在类或字段上注解,为字段生成setter方法
@Getter :在类或字段上注解,为字段生成getter方法
@Data: 在类上注解,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
-
Spring Configuration Processor
在使用自定义配置文件时(例如application.properties/.yml文件)提供上下文帮助和代码完成。
二、Web
-
Spring Web
使用 Spring MVC 构建 Web 应用程序,包含 RESTful 应用程序。使用 Apache Tomcat 作为默认的嵌入式容器。创建 Web 应用时必选,开发时常用的一些注解也在这个包里面,例如:@Controller、@RestController、@PostMapping、@GetMapping、@Service。
-
Spring Reactive Web
使用 Spring WebFlux 和 Netty 构建响应式 web 应用程序。
-
Spring GraphQL
为 Spring 提供 GraphQL(图状数据语言)和 GraphQL Java 支持。GraphQL 最大的优势是查询图状数据,相当于把后端当做数据库,把前端当做服务端。图状数据是一种结构,例如评论关联,加了 QL 是指图状语言。
-
Rest Repositories
通过Spring Data REST在REST上公开Spring数据存储库,Rest 是一种软件框架风格,有别于 MVC 架构。
-
Spring Session
提供用于管理用户会话信息的APl和实现。
-
Rest Repositories HAL Explorer
在你的浏览器上浏览 Spring Data REST 存储库。
-
Spring HATEOAS
提供 REST 最高层次超媒体应用状态引擎支持,要了解 HATEOAS 就得先去了解 REST 4 个层次。这个服务说白了前端向后端发起请求,后端会返回额外的参数(links)。
-
Spring Web Services
促进契约优先 SOAP (Simple Object Access Protocol)开发。
-
Jersey
用 Java 开发 RESTful Web 服务的框架,该框架提供对 JAX-RS (Java API for RESTful Web Services)的支持。
-
Vaadin
允许你使用纯 Java 编写 UI 的 Web 框架。
三、Template Engines
-
Thymeleaf
一个现代化的服务端 Java 模板引擎。
-
Apache Freemarker
Java 库根据模板和更改的数据生成文本输出。
-
Mustache
无逻辑模板,只有标签。
-
Groovy Templatess
Groovy 模板引擎。Groovy 基于 JVM 的语言。
四、Security
-
Spring Security
高度定制化权限控制和访问的控制安全框架。
-
OAuth2 Client
Spring Boot 集成开放授权/开放 ID 客户端功能。
-
OAuth2 Resource Server
Spring Boot 集成开放授权资源服务器功能。
-
Spring LDAP
轻型目录访问协议,统一认证的解决方案,有多个平台只需要一个账号。
-
Okta
Okta 也是一种统一认证解决的方案。
五、SQL
-
JDBC API
提供定义客户端如何连接、查询数据库和数据库连接API。
-
Spring Data JPA
用于创建数据访问层和跨存储持久化数据连通接口,用于 Spring Data 和 Hibernate。Spring Data 是一系列家族。
-
Spring Data JDBC
持久化 SQL 数据在 JDBC 计划中,用于 Spring Data。支持高级队列和数据类型。
-
Spring Data R2DBC
提供反应式关系型数据库连通支持。R2DBC 是一项 API 规范计划,实现数据库厂商访问关系数据库,由 Spring 官方提出。补充,R2DBC 是反应式关系数据库连接,是一个开发规范,将反应式编程 API 引入关系型数据库。
-
MyBatis Framework
支持客制化 SQL 的数据持久化框架,内置存储过程和高级映射。对象存储过程和 SQL 语句可以使用XML描述或注解实现。
-
Liquibase Migration
提供Liquibase 数据库迁移和资源控制库。Liquid Database for Mac 才是 Mac 提供的液体数据库,它真的是用来管理液体数据。
-
Flyway Migration
提供数据库版本的迁移和控制,数据库界的 SVN/Git 版本控制。
-
JOOQ Access Layer
提供 JOOQ 系列访问层。JOOQ 是一个 ORM 型持久化框架(对象关系映射),可以给你的数据库生成 Java 代码,还可以通过类型安全 SQL 流畅的构建 API。
-
IBM DB2 Driver
访问 IBM DB2 数据库的 JDBC 驱动。DB2 是 IBM 开发的一种大型关系型分布式决方案数据库。
-
Apache Derby Database
是一个开源的完全用 Java 实现的关系型数据库。MySQL 是用 C++ 实现的关系型数据库,一个道理。
-
H2 Database
提供一个快速且运行在内存中的数据库支持。H2 也是用 Java 写的关系型数据库,可以嵌入 Java 程序也可以作为一个单独的数据库。
-
HyperSQL Database
百分之百绝对轻量的 Java 数据库引擎。别名 HSQLDB ,具有标准的 SQL 语法和 Java 接口,不适用于大型数据,适用于测试、演示的 Java 程序项目。
-
MariaDB Driver
提供 Maria 的 JDBC和 R2DBC 驱动,MySQL 被收购后,作者新开的一个 “MySQL”。
-
MS SQL Server Driver
提供给每一个 Java 应用程序微软数据库服务的 JDBC和 R2DBC 驱动(SQLServer、Azure)。
-
MySQL Driver
提供 MySQL 的 JDBC和 R2DBC 驱动。想想 application.yml 中 driver-class-name 填的驱动包,其它的驱动都是这么用的。
-
Oracle Driver
提供一个 JDBC 驱动给Oracle。
-
PostgreSQL Driver
以 PostgreSQL 规范标准提供 JDBC 驱动,这个数据库跟 Java 独立不搭噶。
六、NoSQL
-
Spring Data Redis (Access+Driver)
提供高级线程安全且包含同步、异步、反应式交互的 Redis 客户端驱动,支持集群、哨兵、流水线、自动重连。
-
Spring Data Reactive Redis
只提供了 Redis 反应式交互驱动,不需要太多功能就用这个包。
-
Spring Data MongoDB
提供 MongoDB 驱动。MongoDB 可以灵活的存储类似 JSON 那样的数据,相较 Redis 查询起来更像持久化在本地的关系型数据库,非要比较性能肯定比不过 Redis,新出了一个 RedisJson 比 MongoDB 快很多倍。
-
Spring Data Reactive MongoDB
提供异步流处理非阻塞的 MongoDB 驱动。
-
Spring Data Elasticsearch (Access+Driver)
提供 Cassandra 驱动和服务,Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。
-
Spring Data for Apache Cassandra
提供 Cassandra 服务,是一个免费开源的分布式 NoSQL 高扩展和高性能的数据库管理系统。
-
Spring Data Reactive for Apache Cassandra
提供 Cassandra 服务,以反应式方式访问 Cassandra NoSQL 数据库。
-
Spring Data Couchbase
提供 Couchbase 服务,内存优先的分布式开发 NoSQL 数据库。
-
Spring Data Reactive Couchbase
提供 Couchbase 服务,以反应式方式访问 Couchbase NoSQL 数据库。
-
Spring Data Neo4j
开源NoSQL数据库,存储由节点组成的图形结构的数据,通过关系连接。
-
Spring for Apache Geode
数据管理平台,提供实时、一致的云架构访问数据。
七、Messaging
-
Spring Integration
增加了对企业集成模式的支持。支持轻量级消息传递,并支持通过声明式适配器与外部系统集成。
-
Spring for RabbitMQ
RabbitMQ 是一个实现了高级消息队列的代理软件。
-
Spring for Apache Kafka
Kafka 是一种高吞吐量的分布式发布订阅消息系统。
-
Spring for Apache Kafka Streams
使用Apache Kafka Streams构建流处理应用程序。
-
Spring for Apache ActiveMQ 5
提供 ActiveMQ JMS 支持。JMS(Java Message Service)是一个 Java 平台面向消息中间件的 API,用来在两个程序或分布式系统中发送消息。
-
Spring for Apache ActiveMQ Artemis
它是 ActiveMQ 的最新版。
-
WebSocket
提供构建简单网络协议和套接应用服务。
-
RSocket
带有 Spring 消息和 Netty 的应用程序。Netty 是由 JBOSS 提供的 Java 开源框架,提供异步、事件驱动的网络应用程序框架和工具,用于快速开发高性能、高可靠的网络服务器和客户端程序。
-
Apache Camel
Camel 能够在各种领域语言定义路由和中间规则。
-
Solace PubSub+
连接到 Solace PubSub+ 进行高级事件发布、订阅。
八、I/O
-
Spring Batch
Spring Batch 是一个批量处理应用框架,不是调度框架,需要和调度框架合作完成批处理任务。
-
Validation
使用 Hibernate 验证程序进行Bean验证。
-
Java Mail Sender
使用 Java Mail 和 Spring 框架中的 JavaMailSender 发送 email。
-
Quartz Scheduler
Quartz 是一个调度框架,用它完成调度工作。
-
Spring cache abstraction
缓存抽象概念,提供与缓存相关的操作,例如更新缓存内容的能力,但不提供实际的数据存储。
-
Picocli
Picocli 是一个强大轻量的命令行接口,用于构建命令行应用程序。
九、Ops
-
Spring Boot Actuator
支持内置(或自定义)端点,允许您监视和管理应用程序,如应用程序运行状况、指标、会话等。
-
Codecentric’s Spring Boot Admin (Client)
用于监控管理的软件,能够将 Actuator 中的信息进行界面展示,也可以监控所有 Spring Boot 应用的健康状况,提供实时报警功能。
-
Codecentric’s Spring Boot Admin (Server)
应用程序作为 Spring Boot Admin Client 向 Server 注册。先搭建 Server ,再给项目搭建 Client 并注册到 Server 中。
十、Observability 可观察性应用
-
Datadog
将 Datadog 发布到 Micrometer 服务指标数据。Datadog 针对云的监控服务,通过 SaaS 的数据分析平台提供对服务器、数据库、工具和服务的监控。Micrometer 微测度量指标,可实现各种监控系统。
-
Influx
将 Influx 发布到 Micrometer 微测度量指标服务。Influx 是一个开源的时序型数据库,常用于存储系统监控数据,IoT 行业的实时数据等场景。IoT 指物联网,通过各种信息传感器等设备采集信息。
-
Graphite
将 Graphite 发布到 Micrometer 微测度量指标服务。Graphite 是一个采集网站实时信息并进行统计的开源项目,可以采集多种网站服务允许状态。
-
New Relic
将 New Relic 发布到 Micrometer 微测度量指标服务。New Relic 是一个很强大的服务器性能监控工具,专注于 SaaS 和 App 性能管理业务。
-
Prometheus
Prometheus 是一个开源的监控解决方案,用于收集和聚合指标作为时间序列数据,Promeheus 中的每一个项目都是一个指标时间,并带有它发生的时间戳。
-
Sleuth
可以通过 Spring Colud Sleuth 的日志进行分布式跟踪。
-
Wavefront
Wavefront 这是一个基于SaaS的指标监测和分析平台,可视化、查询和告警整个堆栈中的数据。
-
Zipkin Client
使用已安装的 Zipkin 和 Spring Cloud Sleuth Zipkin 进行分布式跟踪。
十一、Testing
-
Spring REST Docs
Spring REST Docs 可以帮你记录 RESTful 服务,同时还能生成标准的接口文档。
-
Testcontainers
提供轻量级的公共数据实例测试容器,可以运行在一个 Docker 容器中。
-
Contract Verifier
提供契约测试服务,支持微服务、云契约应用。
-
Contract Stub Runner
用于基于 HTTP/消息传递 的通信的存根运行程序。允许从RestDocs测试创建WireMock存根。RestDocs 可以生成 API 文档。WireMock 可模拟后端服务用于 Web 服务测试,WireMock 会创建一个 HTTP 服务运行 Web 服务以便测试。
-
Embedded LDAP Server
为在单元测试中运行 LDAP 服务器提供了一种平台无关的方式。LDAP 是一种存储方式,即轻量级目录存取协议。
-
Embedded MongoDB Database
为在单元测试中运行MongoDB提供了一种平台无关的方式。
十二、Spring Cloud
-
Cloud Bootstrap
非特定 Spring Cloud 特性,Cloud Native是一种应用程序开发风格,鼓励在持续交付和价值驱动开发领域开发方式。
-
Function
通过函数促进业务逻辑的实现,并支持跨无服务器提供商的统一编程模型,以及独立运行(本地或PaaS)的能力。
-
Task
允许用户使用 Spring Cloud 开发和运行短期的微服务。在本地、云中和 Spring 云数据流(Spring Cloud Data Flow)上运行它们。
十三、Spring Cloud Tools
-
Open Service Broker
构建 Spring Boot 应用程序的框架,该应用程序实现了开放式 Service Broker APl,它可以为运行在云计算原生平台(如 Cloud Foundry 、 Kubernetes 和 OpenShift )中的应用程序提供服务。
Cloud Foundry 是业界第一个开源 PassS 云平台,开发人员能够在几秒钟内进行应用程序部署和扩展。
Kubernetes 是一个开源的用于管理云平台多个主机上容器化的应用,目的是让部署容器化应用更加简单和高效。
OpenShift 开发者和操作友好的Kubernetes发行版。
十四、Spring Cloud Config
-
Config Client
连接到 Spring Cloud 配置服务器以获取应用程序配置的客户端。
-
Config Server
通过Git、SVN或HashiCorp Vault对配置进行集中管理。
-
Vault Configuration
为分布式系统中的外部化配置提供客户端支持。使用 HashiCorp 的 Vault,可以在所有环境中管理应用程序的外部机密属性。
-
Apache Zookeeper Configuration
在应用程序中启用和配置公共模式,并使用基于 Apache Zookeeper 的组件构建大型分布式系统。提供的模式包括服务发现和配置。Zookeeper 是一个分布式应用程序协调服务。
-
Consul Configuration
启用和配置应用程序中的常见模式,并使用 Hashicorp 的 Consor 构建大型分布式系统。提供的模式包括服务发现、分布式配置和控制总线。Hashicorp 的 Consor 是一个多云平台,中国用不了企业版。
十五、Spring Cloud Discovery
-
Eureka Discovery Client
一种基于REST的服务,用于定位服务,以实现中间层服务器的负载平衡和故障切换。
-
Eureka Server
Spring Cloud Netflix Eureka 服务器。Eureka 是 Netflix 开发的服务发现框架,本身基于 REST 服务用于定位 AWS 域的中间层服务,以达到负载均很和中间层服务故障转移目的。Spring Cloud 把它集成在 Spring Cloud Netflix 里面。
-
Apache Zookeeper Discovery
提供 Zookeeper 服务发现。
-
Cloud Foundry Discovery
提供 Cloud Foundry 服务发现。
-
Consul Discovery
提供 Hashicorp Consult 服务发现。