目录
前言
随着越来越多的开源项目加入到Spring这个大家庭中,Spring在java的语言中已经存在了不可或缺的地步了,这个大家庭中的开源项目在我们平常开发的时候或多或少的都会使用到,使我们开发简洁,简单,高效。下面就来看一下Spring大家族的各种产品及介绍吧!
详细介绍
Spring Boot
- 介绍
Spring Boot可以轻松创建独立的,生产级的基于Spring的应用程序,您可以“运行”。 - 特征
1、创建独立的Spring应用程序
2、直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
3、提供自以为是的“入门”依赖项以简化构建配置
4、尽可能自动配置Spring和第三方库
5、提供生产就绪功能,例如指标,运行状况检查和外部化配置
6、绝对没有代码生成,也不需要XML配置
Spring Framework
- 介绍
Spring Framework为现代基于Java的企业应用程序提供了全面的编程和配置模型 - 在任何类型的部署平台上。
Spring的一个关键要素是应用程序级别的基础架构支持:Spring专注于企业应用程序的“管道”,以便团队可以专注于应用程序级业务逻辑,而无需与特定部署环境建立不必要的联系。 - 特征
1、核心技术:依赖注入,事件,资源,i18n,验证,数据绑定,类型转换,SpEL,AOP。
2、测试:模拟对象,TestContext框架,Spring MVC测试,WebTestClient。
3、数据访问:事务,DAO支持,JDBC,ORM,编组XML。
4、Spring MVC和 Spring WebFlux Web框架。
5、集成:远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存。
6、语言:Kotlin,Groovy,动态语言。
Spring Cloud
- 介绍
Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具,例如(配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式会话,集群状态)。
分布式系统的协调导致锅炉板模式,使用Spring Cloud开发人员可以快速站起来实现这些模式的服务和应用程序。
它们适用于任何分布式环境,包括开发人员自己的笔记本电脑,裸机数据中心和Cloud Foundry等托管平台。 - 特征
1、分布式/版本化配置
2、服务注册和发现
3、路由
4、服务与服务通信
5、负载均衡
6、断路器
7、全球锁
8、领导选举和集群状态
9、分布式消息
Spring Data
- 介绍
Spring Data的使命是为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍保留底层数据存储的特殊特性。
它使得使用数据访问技术,关系数据库和非关系数据库,map-reduce框架和基于云的数据服务变得容易。
这是一个伞形项目,其中包含许多特定于给定数据库的子项目。这些项目是通过与这些令人兴奋的技术背后的许多公司和开发人员合作开发的。 - 特征
1、强大的存储库和自定义对象映射抽象
2、从存储库方法名称派生动态查询
3、实现域基类提供基本属性
4、支持透明审核(创建,最后更改)
5、可以集成自定义存储库代码
6、通过JavaConfig和自定义XML命名空间轻松实现Spring集成
7、与Spring MVC控制器的高级集成
8、跨存储持久性的实验支持
Spring Cloud Data Flow
- 介绍
Spring Cloud Data Flow是用于构建数据集成和实时数据处理管道的工具包。
管道由Spring Boot应用程序组成,使用Spring Cloud Stream或Spring Cloud Task微服务框架构建。这使得Spring Cloud Data Flow适用于各种数据处理用例,从导入/导出到事件流和预测分析。 - 特征
Spring Security
- 介绍
Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架。它是保护基于Spring的应用程序的事实上的标准。
Spring Security是一个专注于为Java应用程序提供身份验证和授权的框架。
与所有Spring项目一样,Spring Security的真正强大之处在于它可以轻松扩展以满足自定义要求 - 特征
1、对身份验证和授权的全面和可扩展的支持
2、防止会话固定,点击劫持,跨站点请求伪造等攻击
3、Servlet API集成
4、可选与Spring Web MVC集成
Spring Session
- 介绍
Spring Session提供了用于管理用户会话信息的API和实现。 - 特征
1、HttpSession - 允许以应用程序容器(即Tomcat)中立方式替换HttpSession,支持在头文件中提供会话ID以使用RESTful API
2、WebSocket - 提供在接收WebSocket消息时保持HttpSession活动的能力
3、WebSession - 允许以应用程序容器中立方式替换Spring WebFlux的WebSession
Spring Integration
- 介绍
扩展Spring编程模型以支持众所周知的企业集成模式。
pring Integration在基于Spring的应用程序中实现轻量级消息传递,并支持通过声明适配器与外部系统集成。
与Spring对远程处理,消息传递和调度的支持相比,这些适配器提供了更高级别的抽象。
Spring Integration的主要目标是提供一个简单的模型来构建企业集成解决方案,同时保持关注点的分离,这对于生成可维护,可测试的代码至关重要。 - 特征
1、实施大多数企业集成模式
2、端点
3、频道(点对点和发布/订阅)
4、聚合
5、过滤
6、变压器
7、控制总线
8、与外部系统集成
9、REST / HTTP
10、FTP / SFTP
11、推特
12、Web服务(SOAP和ReST)
13、TCP / UDP
14、ETC.
15、RabbitMQ
16、电子邮件
17、该框架具有广泛的JMX支持
18、将框架组件公开为MBean
19、适配器从MBean获取属性,调用操作,发送/接收通知
Spring HATEOAS
- 介绍
Spring HATEOAS提供了一些API,以便在使用Spring,特别是Spring MVC时,轻松创建遵循HATEOAS原则的REST表示,它试图解决的核心问题是链接创建和表示组装。 - 特征
1、链接,资源表示模型的模型类
2、链接构建器API以创建指向Spring MVC控制器方法的链接
3、支持HAL等超媒体格式
Spring REST Docs
- 介绍
Spring REST Docs可帮助您记录RESTful服务。
它结合了使用Asciidoctor编写的手写文档和使用Spring MVC Test生成的自动生成的片段。这种方法使您免受Swagger等工具生成的文档的限制。
它可以帮助您生成准确,简洁和结构良好的文档。然后,该文档允许您的用户轻松获取所需信息。 - 特征
Spring Batch
- 介绍
轻量级,全面的批处理框架,旨在开发对企业系统日常运营至关重要的强大批处理应用程序。
pring Batch提供了可重复使用的功能,这些功能对于处理大量记录至关重要,包括记录/跟踪,事务管理,作业处理统计,作业重启,跳过和资源管理。
它还提供更高级的技术服务和功能,通过优化和分区技术实现极高容量和高性能的批处理作业。
简单和复杂的大批量批处理作业可以高度可扩展的方式利用框架来处理大量信息。 - 特征
1、交易管理
2、基于块的处理
3、声明性I / O
4、启动/停止/重新启动
5、重试/跳过
6、基于Web的管理界面(Spring Cloud Data Flow)
Spring IO platform
- 介绍
Spring IO是一个用于构建现代应用程序的有凝聚力的版本化平台。
它是一种模块化的企业级分发版,可提供一组策划的依赖项,同时使开发人员完全可以控制仅部署所需的部件。
Spring IO是100%开源,精简和模块化的。 - 特征
1、一个平台,许多工作负载 - 构建Web,集成,批处理,响应或大数据应用程序
2、使用Spring Boot极大地简化了开发体验
3、开箱即用的生产就绪功能
4、精心协作的协调依赖项
5、模块化平台,允许开发人员仅部署他们需要的部件
6、支持嵌入式运行时,经典应用程序服务器和PaaS部署
7、仅取决于Java SE,并支持Groovy,Grails和一些Java EE
8、适用于您现有的依赖管理工具,如Maven和Gradle
9、虽然Spring IO平台支持JDK 7和8,但许多单独的Spring项目也支持较旧的JDK版本
Spring AMQP
- 介绍
Spring AMQP项目将核心Spring概念应用于基于AMQP的消息传递解决方案的开发。
它提供了一个“模板”作为发送和接收消息的高级抽象,它还为具有“侦听器容器”的消息驱动的POJO提供支持,这些库有助于管理AMQP资源,同时促进依赖注入和声明性配置的使用。在所有这些情况下,您将看到Spring Framework中与JMS支持的相似之处。 - 特征
1、用于异步处理入站消息的侦听器容器
2、RabbitTemplate用于发送和接收消息
3、RabbitAdmin用于自动声明队列,交换和绑定
Spring for Android
- 介绍
Spring for Android是Spring Framework的扩展,旨在简化原生Android应用程序的开发。 - 特征
1、适用于Android的Rest客户端
2、Auth支持访问安全API
Spring CredHub
- 介绍
Spring CredHub提供客户端支持,用于存储,检索和删除在Cloud Foundry平台中运行的CredHub服务器的凭据。CredHub提供了一个安全存储,生成,检索和删除各种类型凭据的API。
Spring CredHub为CredHub API提供了一个Java绑定,可以很容易地将Spring应用程序与CredHub集成 - 特征
Spring for Apache Kafka
- 介绍
Spring for Apache Kafka(spring-kafka)项目将核心Spring概念应用于基于Kafka的消息传递解决方案的开发,它提供了一个“模板”作为发送消息的高级抽象,它还为带有@KafkaListener注释和“侦听器容器”的消息驱动的POJO提供支持,这些库促进了依赖注入和声明的使用。在所有这些情况下,您将看到Spring Framework中的JMS支持和Spring AMQP中的RabbitMQ支持的相似之处。 - 特征
1、KafkaTemplate
2、KafkaMessageListenerContainer
3、@KafkaListener
4、KafkaTransactionManager
5、spring-kafka-test 嵌入式kafka服务器的jar
Spring LDAP
- 介绍
Spring LDAP可以更轻松地构建使用轻量级目录访问协议的基于Spring的应用程序。 - 特征
Spring Mobile
- 介绍
Spring Mobile是Spring MVC的扩展,旨在简化移动Web应用程序的开发。 - 特征
1、用于移动设备和平板电脑设备的服务器端检测的设备解析器抽象
2、网站偏好管理,允许用户指示他或她是否更喜欢“正常”,“移动”或“平板电脑”体验
3、一种站点切换器,能够根据用户的设备和可选的站点偏好将用户切换到最合适的站点(移动设备,平板电脑或普通站点)
4、设备感知视图管理,用于组织和管理特定设备的不同视图
Spring Roo
- 介绍
面向Java开发人员的下一代快速应用程序开发工具。使用Roo,您可以在几分钟内轻松构建完整的Java应用程序。 - 特征
Spring Shell
- 介绍
Spring Shell项目提供了一个交互式shell,允许您使用基于Spring的编程模型插入自己的自定义命令。 - 特征
1、一个简单的,注释驱动的编程模型,用于提供自定义命令
2、使用Spring Boot自动配置功能作为命令插件策略的基础
3、选项卡完成,着色和脚本执行
4、自定义命令提示符,shell历史文件名,结果和错误的处理
5、基于域特定标准动态启用命令
6、与bean验证API集成
7、已经内置命令,如清晰的屏幕,华丽的帮助,退出
8、ASCII艺术表,带格式,对齐,花式边框等。
Spring Statemachine
- 介绍
Spring Statemachine是应用程序开发人员在Spring应用程序中使用状态机概念的框架。 - 特征
1、易于使用的扁平单级状态机,用于简单的使用案例
2、分层状态机结构,以简化复杂的状态配置
3、状态机区域提供更复杂的状态配置
4、使用触发器,转换,警卫和操作
5、键入安全配置适配器
6、生成器模式,用于在Spring Application上下文之外使用的简单实例化
7、通常用例的食谱
8、基于Zookeeper的分布式状态机
9、状态机事件监听器
10、UML Eclipse Papyrus建模
11、将计算机配置存储在永久存储中
12、Spring IOC集成将bean与状态机关联起来
Spring Test HtmlUnit
- 介绍
提供Spring MVC Test Framework和HtmlUnit之间的集成。 - 特征
Spring Vault
- 介绍
Spring Vault提供熟悉的Spring抽象和客户端支持,用于访问,存储和撤销机密,它提供了与Vault交互的低级和高级抽象,使用户免于基础设施问题。
通过HashiCorp的Vault,您可以在所有环境中为应用程序管理外部机密数据,Vault可以管理静态和动态机密,例如应用程序数据,远程应用程序/资源的用户名/密码,并为外部服务提供凭据,如MySQL,PostgreSQL,Apache Cassandra,Consul,AWS等。 - 特征
1、连接包作为低级抽象
2、使用对象映射支持从Vault读取,写入和删除数据
3、多种身份验证机制:AppId,AppRole,AWS EC2,客户端证书和Cubbyhole(包装/存储令牌)
Spring Web Flow
- 介绍
Spring Web Flow构建于Spring MVC之上,允许实现Web应用程序的“流程”,流程封装了一系列步骤,指导用户执行某些业务任务。
它跨越多个HTTP请求,具有状态,处理事务数据,可重用,并且可能是动态的,并且本质上是长期运行的 - 特征
1、有一个明确的开始和结束点。
2、用户必须按特定顺序浏览一组屏幕。
3、直到最后一步,更改才会完成。
4、一旦完成,就不可能意外地重复交易
Spring Web Services
- 介绍
Spring Web Services(Spring-WS)是Spring社区的一个产品,专注于创建文档驱动的Web服务。
Spring Web Services旨在促进契约优先的SOAP服务开发,允许使用多种方式之一来操作XML有效负载来创建灵活的Web服务,该产品基于Spring本身,这意味着您可以使用Spring概念(如依赖注入)作为Web服务的组成部分。
人们使用Spring-WS有很多原因,但大多数人在找到替代Web服务最佳实践后缺乏的替代SOAP堆栈时会被它吸引。
Spring-WS使最佳实践变得简单。这包括诸如WS-I基本配置文件,契约优先开发以及合同与实现之间松散耦合等实践。 - 特征
1、使最佳实践成为一种简单的实践:Spring Web Services使执行最佳实践变得更加容易。这包括诸如WS-I基本配置文件,契约优先开发以及合同与实现之间松散耦合等实践。
2、强大的映射:您可以将传入的XML请求分发到任何对象,具体取决于消息有效内容,SOAP Action标头或XPath表达式。
3、XML API支持:传入的XML消息可以在标准的JAXP API(如DOM,SAX和StAX)中处理,也可以在JDOM,dom4j,XOM甚至编组技术中处理。
4、灵活的XML编组:Spring Web Services发行版中的Object / XML Mapping模块支持JAXB 1和2,Castor,XMLBeans,JiBX和XStream。因为它是一个单独的模块,所以您也可以在非Web服务代码中使用它。
5、重用您的Spring专业知识:Spring-WS使用Spring应用程序上下文进行所有配置,这应该有助于Spring开发人员快速,快速地获得最佳速度。此外,Spring-WS的体系结构类似于Spring-MVC的体系结构。
6、支持WS-Security:WS-Security允许您签署SOAP消息,加密和解密它们,或对它们进行身份验证。
7、与Acegi Security集成:Spring Web Services的WS-Security实现提供与Spring Security的集成。这意味着您也可以将现有配置用于SOAP服务。
8、由Maven构建:这有助于您在自己的基于Maven的项目中有效地重用Spring Web Services工件。
9、Apache许可证。您可以放心地在项目中使用Spring-WS。