这里将Spring官网上的各个项目特性汇总一下
Spring Boot
- 直接嵌入
Tomcat
,Jetty
或Undertow
(无需部署WAR文件) - 提供
-starter
依赖项以简化构建配置 - 尽可能自动配置Spring和第三方库
- 提供生产就绪功能,例如指标,运行状况检查和外部化配置
- 绝对没有代码生成,也不需要XML配置
Spring Framework
- 核心技术:依赖注入,事件,资源,
i18n
,验证,数据绑定,类型转换,SpEL
,AOP
- 测试:模拟对象,
TestContext
框架,Spring MVC
测试,WebTestClient
- 数据访问:事务,
DAO
支持,JDBC
,ORM
,编组XML
Spring MVC
和Spring WebFlux Web
框架- 集成:远程处理,
JMS
,JCA
,JMX
,电子邮件,任务,调度,缓存 - 语言:
Kotlin
,Groovy
,动态语言
Spring Data
- 强大的存储库和自定义对象映射抽象
- 从存储库方法名称派生动态查询
- 实现域基类提供基本属性
- 支持透明审核(创建,最后更改)
- 可以集成自定义存储库代码
- 通过
JavaConfig
和自定义XML
命名空间轻松实现Spring
集成 - 与
Spring MVC
控制器的高级集成 - 跨存储持久性的实验支持
Spring Cloud
- 分布式/版本化配置
- 服务注册和发现
- 路由
- 服务到服务电话
- 负载均衡
- 断路器
- 全球锁
- 领导选举和集群国家
- 分布式消息
Spring Cloud Data Flow
Spring Cloud
数据流服务器使用Spring Cloud Deployer
,将由Spring Cloud Stream
或Spring Cloud Task
应用程序组成的数据管道部署到现代平台,如Cloud Foundry
和Kubernetes
- 针对各种数据集成和处理场景的一系列预构建流和任务/批量启动应用程序有助于学习和实验。
- 可以使用熟悉的
Spring Boot
样式编程模型构建针对不同中间件或数据服务的自定义流和任务应用程序。 - 简单的流管道DSL可以轻松指定要部署的应用程序以及如何连接输出和输入。当一系列任务应用程序需要作为有向图运行时,组合任务DSL非常有用。
- 该仪表板提供用于构建数据管道交互,以及意见部署的应用程序,并使用普罗米修斯,
InfluxDB
,或其他监控系统监测的指标他们一个图形编辑器。 Spring Cloud Data Flow
服务器公开了一个REST API
,用于组合和部署数据管道。单独的shell
使您可以从命令行轻松使用API。
Spring Security
- 对身份验证和授权的全面和可扩展的支持
- 防止会话固定,点击劫持,跨站点请求伪造等攻击
Servlet API
集成- 可选与
Spring Web MVC
集成
Spring Session
HttpSession
- 允许以应用程序容器(即Tomcat
)中立的方式替换HttpSession
,支持在头文件中提供会话ID
以使用RESTful API
WebSocket
- 提供在接收WebSocket
消息时保持HttpSession
活动的能力WebSession
- 允许以应用程序容器中立方式替换Spring WebFlux
的WebSession
Spring Integration
- 实施大多数企业集成模式
- 端点
- 频道(点对点和发布/订阅)
- 聚合
- 过滤
- 变压器
- 控制总线
- 与外部系统集成
REST / HTTP
FTP / SFTP
- 推特
Web
服务(SOAP
和ReST
)TCP / UDP
ETC.
RabbitMQ
- 电子邮件
- 该框架具有广泛的
JMX
支持 - 将框架组件公开为
MBean
- 适配器从
MBean
获取属性,调用操作,发送/接收通知
Spring HATEOAS
- 链接,资源表示模型的模型类
- 链接构建器API以创建指向Spring MVC控制器方法的链接
- 支持HAL等超媒体格式
Spring REST Docs
- 记录
RESTful
服务;它结合了使用Asciidoctor
编写的手写文档和使用Spring MVC Test
生成的自动生成的片段。这种方法使您免受Swagger
等工具生成的文档的限制
Spring Batch
- 交易管理
- 基于块的处理
- 声明性
I / O.
- 启动/停止/重新启动
- 重试/跳过
- 基于
Web
的管理界面(Spring Cloud Data Flow
)
Spring IO Platform
- 一个平台,许多工作负载 - 构建
Web
,集成,批处理,响应或大数据应用程序 - 使用
Spring Boot
极大地简化了开发体验 - 开箱即用的生产就绪功能
- 精心协调的依赖关系,可以协同工作
- 模块化平台,允许开发人员仅部署他们需要的部件
- 支持嵌入式运行时,经典应用程序服务器和PaaS部署
- 仅取决于
Java SE
,并支持Groovy
,Grails
和一些Java EE
- 适用于您现有的依赖管理工具,如
Maven
和Gradle
Spring IO
平台经过认证可用于JDK 7
和8
Spring AMQP
- 用于异步处理入站消息的侦听器容器
RabbitTemplate
用于发送和接收消息RabbitAdmin
用于自动声明队列,交换和绑定
Spring for Android
- 适用于
Android
的Rest
客户端 Auth
支持访问安全API
Spring Cloud Skipper
- 定义可以部署
Spring Boot
应用程序的多个平台帐户。支持的平台包括Local
,Cloud Foundry
和Kubernetes
。Mustache
模板化文件中的替换变量,描述如何将应用程序部署到平台。 - 搜索现有应用程序的包存储库。
- 基于简单的工作流程安装/升级/回滚软件包。
- 存储已解析模板文件(也称为“应用程序清单”)的历史记录,这些文件表示已部署到特定版本的平台的最终描述。
- 通过独立的交互式
shell
或通过Web API
使用来补充CI
工作流。
Spring CredHub
Spring CredHub
为在Cloud Foundry
平台上运行的CredHub
服务器存储,检索和删除凭据提供客户端支持
Spring Flo
- 使用DSL,图形画布或两者创建,管理和监控流管道
- 通过DSL编写管道,内容辅助和自动完成
- 查看分布式部署中模块的可视化表示
- 在GUI中使用自动调整和网格布局功能,可以更轻松,更有效地组织管道
Spring for Apache Kafka
KafkaTemplate
KafkaMessageListenerContainer
@KafkaListener
KafkaTransactionManager
spring-kafka-test jar with embedded kafka server
Spring LDAP
ldap: Lightweight Directory Access Protocol
,也就是轻量目录访问协议- LDAP 的概念与 Spring LDAP 框架使用
Spring Mobile
- 用于移动设备和平板电脑设备的服务器端检测的设备解析器抽象
- 网站偏好管理,允许用户指示他或她是否更喜欢“正常”,“移动”或“平板电脑”体验
- 一种站点切换器,能够根据用户的设备和可选的站点偏好,将用户切换到最合适的站点(移动设备,平板电脑或普通站点)
- 设备感知视图管理,用于组织和管理特定设备的不同视图
Spring Roo
- 面向
Java
开发人员的下一代快速应用程序开发工具。使用Roo
,您可以在几分钟内轻松构建完整的Java
应用程序
Spring Shell
- 一个简单的,注释驱动的编程模型,用于提供自定义命令
- 使用
Spring Boot
自动配置功能作为命令插件策略的基础 - 选项卡完成,着色和脚本执行
- 自定义命令提示符,
shell
历史文件名,结果和错误的处理 - 基于域特定标准动态启用命令
- 与
bean
验证API
集成 - 已经内置命令,如清晰的屏幕,华丽的帮助,退出
ASCII
艺术表,带格式,对齐,花式边框等
Spring Statemachine
- 易于使用的平面单级状态机,用于简单的使用案例。
- 分层状态机结构,以简化复杂的状态配置。
- 状态机区域提供更复杂的状态配置。
- 使用触发器,转换,警卫和操作。
- 键入安全配置适配器。
- 用于在
Spring Application
上下文之外使用的简单实例化的Builder
模式 - 通常用例的食谱
- 基于
Zookeeper
的分布式状态机 - 状态机事件监听器。
UML Eclipse Papyrus
建模。- 将计算机配置存储在永久存储中。
Spring IOC
集成将bean
与状态机关联起来。
Spring Vault
Spring Vault
提供熟悉的Spring
抽象和客户端支持,用于访问,存储和撤销机密。它提供了与Vault
交互的低级和高级抽象,使用户免于基础设施问题
Spring Web Flow
- 有一个明确的开始和结束点
- 用户必须按特定顺序浏览一组屏幕
- 直到最后一步,更改才会完成
- 一旦完成,就不可能意外地重复交易
Spring Web Services
- 使最佳实践成为一种简单的实践:
Spring Web Services
使执行最佳实践变得更加容易。这包括诸如WS-I
基本概要,契约优先发展以及合同与实施之间松散耦合等实践 - 强大的映射:您可以将传入的XML请求分发到任何对象,具体取决于消息有效内容,
SOAP Action
标头或XPath
表达式 XML API
支持:传入的XML
消息可以在标准的JAXP API
(如DOM
,SAX
和StAX
)中处理,也可以在JDOM
,dom4j
,XOM
甚至编组技术中处理- 灵活的
XML
编组:Spring Web Services
发行版中的Object / XML Mapping
模块支持JAXB 1
和2
,Castor
,XMLBeans
,JiBX
和XStream
。因为它是一个单独的模块,所以您也可以在非Web服务代码中使用它 - 重用您的
Spring
专业知识:Spring-WS
使用Spring
应用程序上下文进行所有配置,这应该有助于Spring
开发人员快速,快速地获得最佳速度。此外,Spring-WS
的体系结构类似于Spring-MVC
的体系结构 - 支持
WS-Security
:WS-Security
允许您签署SOAP
消息,加密和解密它们,或对它们进行身份验证 - 与
Acegi Security
集成:Spring Web Services
的WS-Security
实现提供与Spring Security
的集成。这意味着您也可以将现有配置用于SOAP
服务 - 由
Maven
构建:这有助于您在自己的基于Maven的项目中有效地重用Spring Web Services
工件 Apache
许可证。您可以放心地在项目中使用Spring-WS