spring官网项目介绍
# 背景
这里收集官网 (opens new window)各个项目的介绍和作用说明。
# spring-boot
# Spring Framework
# Spring Data
# Spring Data JDBC
# Spring Data JPA
# Spring Data LDAP
# Spring Data MongoDB
# Spring Data Redis
# Spring Data R2DBC
关系数据库连接,这是一种使用反应式驱动程序集成SQL数据库的规范。
# Spring Data REST
构建超媒体驱动的REST web服务变得容易。
# Spring Data for Apache Cassandra
分布式NoSQL数据库系统,设计用于处理大量数据跨许多商品服务器,提供高可用性、无单点故障和线性扩展性能
# Spring Data for Apache Geode
VMware GemFire 的前身
# Spring Data for VMware GemFire
VMware GemFire进行分布式数据管理
# Spring Data Couchbase
Couchbase是高性能,高伸缩性和高可用的分布式缓存系统;Redis是一个开源的内存数据结构存储系统。
# Spring Data Elasticsearch
# Spring Data Envers
允许访问Hibernate Envers管理的实体修订。
# Spring Data Neo4j
Neo4j图数据库。
# Spring Cloud
# Spring Cloud Azure
# Spring Cloud Alibaba
# Spring Cloud for Amazon Web Services
# Spring Cloud Bus
# Spring Cloud Circuit Breaker
# Spring Cloud CLI
# Spring Cloud - Cloud Foundry Service Broker
# Spring Cloud Commons
# Spring Cloud Config
# Spring Cloud Consul
# Spring Cloud Contract
# Spring Cloud Function
# Spring Cloud Gateway
# Spring Cloud GCP
# Spring Cloud Kubernetes
# Spring Cloud Netflix
# Spring Cloud Open Service Broker
# Spring Cloud OpenFeign
# Spring Cloud Security
# Spring Cloud Skipper
# Spring Cloud Sleuth
# Spring Cloud Stream
# Spring Cloud Stream Applications
# Spring Cloud Task
# Spring Cloud Vault
# Spring Cloud Zookeeper
# Spring Cloud App Broker
# Spring Cloud Data Flow
为现代运行时的可组合数据微服务应用程序提供编排服务。
用于Cloud Foundry和Kubernetes的基于微服务的流式处理和批处理数据。
支持一系列数据处理用例,从ETL到导入/导出、事件流和预测分析。
# Spring Security
通过全面且可扩展的身份验证和授权支持保护您的应用程序。
# Spring Security Kerberos
Kerberos 是一种网络身份验证协议,它通过为用户提供一次性密码以确保安全登录。
该协议能够防止中间人攻击和窃听,并且可以用于保护各种类型的网络通信。
它可以用于以下场景:
- 单点登录 (SSO):允许用户在一个域内只需登录一次即可访问多个受保护的资源。
- 基于角色的权限控制:根据用户的 Kerberos 凭证来决定他们是否具有访问特定资源的权限。
- 集成 Windows 域:与 Microsoft Active Directory 等 Windows 域服务器进行集成,以便使用 Kerberos 进行身份验证。
# Spring Authorization Server
为构建OpenID Connect 1.0身份提供程序和OAuth2授权服务器产品提供了一个安全、轻量级和可自定义的基础。 单独从 Spring Security auth模块出来。
# Spring for GraphQL
Spring for GraphQL为基于GraphQLJava构建的Spring应用程序提供支持。
# Spring Session
提供用于管理用户会话信息的API和实现。 可自定义分布式session。还有WebSocket,HttpSession,WebSession
# Spring Integration
通过轻量级消息传递和声明性适配器支持众所周知的企业集成模式。
Spring Cloud Stream项目建立在Spring Integration之上,其中Spring Integration被用作消息驱动微服务的引擎。
# Spring HATEOAS
简化了创建遵循HATEOAS原则的REST表示。
带有self的下一个接口引用地址,如github的api。
# Spring Modulith
允许开发人员构建结构良好的Spring Boot应用程序,并指导开发人员查找和使用由域驱动的应用程序模块。
DDD模式开发的模版。 强制定义啦一些规范。
# Spring REST Docs
通过将手工编写的文档与使用Spring MVC Test或REST Assured生成的自动生成的片段相结合,可以对RESTful服务进行文档化。 对于测试要求严格的可以使用这个来做文档编辑。 和 SpringFox 的对比 (opens new window)
相较于传统且更流行的 SpringFox(Swagger),Spring REST Docs 的实现方式相当新颖,而且有着鲜明的区别,那么不妨在此列举一下两者的区别以及优劣,以便更好的根据实际需求和使用场景选择最合适的工具。 首先,两者最大的区别就在于根本定位,SpringFox 的定位是和应用一起启动的在线文档,文档的浏览者可以很简单的填写表单并发起一个真实的请求,而 Spring REST Docs 更倾向于导出一份离线文档作为展示,并配合 curl、httpie 这种工具请求真实部署的服务。 其次,SpringFox 最大的特点是使用简单,只需要在源码中增加一些描述性的注解即可完成整份文档,而使用 Spring REST Docs 的前提条件是需要在项目中对 API 进行单元测试,并且要保证测试是可以稳定执行的,这对于很多团队来说无疑增加了很高的门槛。 但是对于已经有完整单元测试的团队来说,增加额外的文档描述几乎和 SpringFox 一样简单,并且还能完整的去除源码依赖。除此之外,依靠测试本身也正是 Spring REST Docs 的最大亮点: 首先,每一次测试都是一个真实的请求(不追究 MockMvc 具体实现细节),它所对应的请求和返回都是真实的,可以轻松将其记录下来作为 Demo 展示。而 SpringFox 只是对 Controller 层的方法进行了扫描,却无法感知 Interceptor、MethodArgumentResolver 这类中间件的存在,只能通过一些全局配置进行额外的描述。 其次,每一次测试也都是一个独立的请求,使得 Spring REST Docs 可以描述同一个 API 在不同请求参数中返回的不同结果的场景(例如成功或是各种失败情况),而 SpringFox 只能描述单一的方法签名和返回值 Model,却无法描述其具体可能出现的场景。 最后,错误的文档比没有文档还要糟糕,所以 Spring REST Docs 不仅仅是做 API 文档化,同时也是在做 API 契约化,如果 API 的实现修改破坏了已有的测试,哪怕仅仅是字段定义,都会导致测试的失败。这可以督促 API 的制定者保证对外提供的契约,也可以让 API 的使用者更加放心。 所以相比之下,如果一个技术氛围良好,对服务严格负责,且愿意尝试 API 单元测试和契约测试的团队来说,我更推荐使用 Spring REST Docs,而如果只是在已有的服务上增加描述性的文档,SpringFox 会是性价比更高的选择。
# Spring AI
是一个人工智能工程的应用框架。其目标是将Spring生态系统的设计原则(如可移植性和模块化设计)应用于人工智能领域,并推动将POJO作为应用程序的构建块应用于AI领域。
一行代码即可集成chatGPT等其他模型。
# Spring Batch
简化和优化处理大批量批处理操作的工作。
# Spring CLI
专注于开发人员生产力的CLI。 脚手架。
# Spring AMQP
将Spring的核心概念应用于基于AMQP的消息传递解决方案的开发。
# Spring Flo
为管道和简单图形提供了一个基本的可嵌入HTML5可视化生成器。这个库被用作Spring Cloud Data Flow中流生成器的基础。
# Spring for Apache Kafka
为Apache Kafka提供熟悉的Spring抽象。
# Spring LDAP
通过使用Spring熟悉的基于模板的方法简化了使用LDAP的应用程序的开发。
# Spring for Apache Pulsar
Apache Pulsar 的支持
# Spring Shell
通过基于CLI的资源发现和交互,使编写和测试RESTful应用程序变得更容易。 没啥用。开发基本不用。
# Spring Statemachine
将状态机概念与Spring应用程序一起使用。 抽离状态模式的实现。
# Spring Web Flow
Spring Web Flow的最佳位置是具有受控导航功能的有状态Web应用程序,
流程封装了一系列步骤,指导用户执行某些业务任务。
例如办理登机手续,申请贷款,购物车结帐,甚至向表单添加确认步骤。 这些场景的共同点是以下一个或多个特征:
有一个明确的开始和结束点。
用户必须按特定顺序浏览一组屏幕。
直到最后一步,更改才会完成。
一旦完成,就不可能意外地重复交易
和工作流不同的事,这里注重的用户的业务流程编排,而不是审批/表单的填写。
# Spring Web Services
Services 的SOAP web接口服务的开发。
# Spring Vault
集成Vault
HashiCorp Vault 是一个用于管理密码、密钥和证书等秘密的系统,同时还可提供有身份认证和授权保护的加密服务。
利用 Vault 提供的UI、CLI或HTTP API,可以在严格的控制和审计下安全地存储和管理敏感数据。
# Spring CredHub
集成 CredHub CredHub 是为 Cloud Foundry 平台集中式的凭证管理框架。