Spring组件概述

Spring IO Platform

What

简单的可以认为是一个依赖维护平台,该平台将相关依赖汇聚到一起,针对每个依赖,都提供了一个版本号。这些版本对应的依赖都是经过测试的,可以保证一起正常使用。

Why

主要是解决依赖版本冲突问题,例如在使用Spring的时候,经常会使用第三方库,一般大家都是根据经验挑选一个版本号或挑选最新的,随意性较大,其实这是有问题的,除非做过完整的测试,保证集成该版本的依赖不会出现问题,且后续集成其它第三方库的时候也不会出现问题,否则风险较大,且后续扩展会越来越困难,因为随着业务复杂度的增加,集成的第三方组件会越来越多,依赖之间的关联也会越复杂。
好消息是,Spring IO Platform很好的解决这些问题,我们在添加第三方依赖的时候,不需要写版本号,它能自动帮我们挑选一个最优的版本,保证最大限度的扩展,而且该版本的依赖是经过测试的,可以完美的与其它组件结合使用

Spring Boot

What

Spring Boot是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。简单理解,Spring Boot不是新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,Spring Boot整合了大部分框架。

Why

使用Spring Boot可以非常方便,快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用Spring Boot非常适合构建微服务。

Spring FrameWork

What

它是一个基于IoC和AOP的架构多层J2EE系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;它实现了优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IoC使得可以很容易的实现Bean的装配,提供了简洁的AOP并据此实现Transaction Managerment等等

Spring Cloud Data Flow

what

  1. 一个用于开发和执行大范围数据处理,其模式包括ETL,批量运算和持续运算的统一编程模型和托管服务。
  2. 对于在现代运行环境中可组合的微服务程序来说,Spring Cloud Data Flow是一个原生云可编配的服务,可以为数据抽取,实时分析,和数据导入/导出这种常见用例创 建和编配数据通道。
  3. 是基于原生云对Spring XD的重新设计,目标是简化大数据应用的开发。
  4. 为基于微服务的分布式流处理和批处理数据通道提供了一系列模型和最佳实践特点。

Spring Cloud

what

是一系列框架的有序集合,利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,为开发人员提供了快速构建分布式系统中的一些通用模式(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,集群状态)。分布式系统的协调导致了锅炉板模式,并且使用Spring Cloud开发人员可以快速的实现这些模式的服务和应用程序。

Spring Data

what

为了简化构建基于Spring框架应用的数据访问计数,包括非关系数据库,Map-Reduce框架,云数据服务等等,另外也包含对关系数据库的访问支持。包含以下子项目:
1. Commons 提供共享的基础框架,适合各个子项目使用,支持跨数据库持久化
2. Hadoop 基于Spring的Hadoop作业配置和一个POJO编程模型的MapReduce作业
3. Key-Value 集成了Redis和Riak,提供多个常用场景下的简单封装
4. Document 集成文档数据库,CouchDB和MongoDB并提供基本的配置映射和资料库支持
5. Graph 集成Neo4j提供强大的基于POJO的编程模型
6. Graph Roo AddOn 支持Neo4j的Roo
7. JDBC Extensions 支持Oracle RAD, 高级队列和高级数据类型
8. JPA 简化创建JPA数据访问层和跨存储的持久层功能
9. Mapping 基于Grails的提供对象映射框架,支持不同的数据库
10. Examples 示例程序,文档和图数据库
11. Guidance 高级文档

Spring Integration

what

扩展了Spring的编程模式到消息领域,在Spring已经存在的企业集成支持的基础上,提供了更高级别的抽象。它将控制反转添加到关注点,支持消息驱动架构,例如当特定业务逻辑应该执行时,响应也应该被发送。它支持路由和消息转换,所以不同的传输协议和不同的数据格式能在不影响易测试性的前提下被集成。换句话说,消息和集成关注点都被框架处理,所以业务组件能更好地与基础设施隔离,从而降低开发者所要面对的复杂的集成职责。

Spring Batch

what

  1. 是一个轻量级的,完善的批处理框架,提供了大量可重用的组件,包括了日志,追踪,事务,任务作业统计,任务重启,跳过,重复,资源管理。对于大数据量和高性能的批处理任务,Spring Batch同样提供了高级功能和特性来支持,比如分区功能,远程功能。总之,通过Spring Batch能够支持简单的,复杂的和大数据量的批处理作业。
  2. 是一个批处理应用框架,不是调度框架,但需要和调度框架合作来构建完整的批处理任务。它只关注批处理任务相关的问题,如事务,并发,监控,执行等,并不提供相应的调度功能。如果需要使用调度框架,在商业软件和开源软件中已经有很多优秀的企业级调度框架(如Quartz, Tivoli, Control-M, Cron等)可以使用

所谓企业批处理就是指在企业级应用中,不需要人工干预,定期读取数据,进行相应的业务处理之后,再进行归档的这类操作。从上面的描述中可以看出,批处理的整个流程可以明显的分为以下3个阶段:
1. 读数据
2. 业务处理
3. 归档结果数据

另外,从定义中可以发现批处理的一个重要特色就是无需人工干预,定期执行,因此一个批处理框架,需要关注事务的粒度,日志监控,执行方式,资源管理,读数据,处理数据,写数据的解耦等方面。
Spring Batch为我们提供了什么呢?
1. 统一的读写接口
2. 丰富的任务处理方式
3. 灵活的事务管理及并发处理
4. 日志,监控,任务重启与跳过等特性

注意,Spring Batch并未提供关于批处理任务调度的功能,因此如何周期性的调用批处理任务需要自己想办法解决,就Java来说,Quartz是一个不错的解决方案,或者写脚本处理。

Spring Security

what

是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。

  1. 全面的和可扩展的身份验证和授权支持
  2. 会话固定攻击防护,clickjacking,跨站请求伪造等等
  3. Servlet API集成
  4. 可选的Spring Web MVC集成

Spring Hateoas

what

Hateoas约束是REST架构风格中最复杂的约束,也是构建成熟REST服务的核心。它的重要性在于打破了客户端和服务器之间严格的契约,使得客户端可以更加智能和自适应,而REST服务本身的演化和更新也变得更加容易。
如果Web应用基于Spring框架开发,那么可以直接使用Spring框架的子项目HATEOAS来开发满足HATEOAS约束的Web服务。满足HATEOAS约束的REST服务最大的特点在于服务器提供给客户端的表达中包含了动态的链接信息,客户端通过这些链接来发现可以触发状态转换的动作。Spring HATEOAS的主要功能在于提供了简单的机制来创建这些链接,并与Spring MVC框架有很好的集成。对于已有的Spring MVC应用,只需要一些简单的改动就可以满足HATEOAS约束。

Spring Rest Docs

what

可帮助记录RESTful服务。结合了用Asciidoctor编写的手写文档和使用Spring MVC Test生成的自动生成的代码段。这种方法免受Swagger等工具的限制,可以帮助生成准确,简洁和结构良好的文档,

Spring Social

what

随着社交网络的流行,在应用中加入对主流社交网络的支持变成了一个重要的功能。比如允许用户使用第三方社交网络的账号,如Twitter,FaceBook,LinkedIn或新浪微博的账号,直接登录;或是读取用户在其它社交网站上的信息等。很多社交网站都提供开放API允许开发人员使用,不过需要开发人员了解OAuth等其他实现细节。Spring Social提供了一个可扩展的框架,允许开发人员很方便地与其他社交网络平台进行集成,同时也提供了流行社交平台的相关API支持。

Spring AMQP

what

基于Spring框架的AMQP消息解决方案,提供模板化的发送和接收消息的抽象层,提供基于消息驱动的POJO的消息监听等,很方便进行RabbitMQ程序的开发。

Spring Mobile

what

是Spring MVC的扩展,用来简化手机上的Web应用开发,用于支持移动浏览的小框架。

Spring For Android

what

是Spring框架在移动领域的扩展,目标是简化原生Android应用程序的开发。

Spring Web Flow

what

是Spring Web应用开发模块栈的一部分,目标是成为管理Web应用页面流程的最佳方案。当你的应用需要复杂的导航控制,例如向导,在一个比较大的事务过程中去指导用户经过一连串的步骤的时候,SWF将会是一个功能强大的控制器。

Spring Web Services

what

旨在促进首次合同服务开发,允许使用许多方式来操作XML有效负载来创建灵活的Web服务。WebService是基于网络的,分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其它兼容的组件进行互操作。Webservice主要利用HTTP和SOAP协议使业务数据在Web上传输,SOAP通过HTTP调用业务对象执行远程功能调用,Web用户能够使用SOAP和HTTP通过Web调用的方法来调用远程对象的。

Spring LDAP

what

用于操作LDAP的Java框架,基于Spring的JdbcTemplate模式。这个框架能够帮助开发人员简化looking up, closing contexts, looping through namingEnumerations, encoding/decoding values与filters等操作。LDAP是轻量目录访问协议,LDAP以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌握LDAP目录树这个概念了。就像DNS的主机名那样,LDAP目录记录的标识名(Distinguished Name, 简称DN)是用来读取单个记录,以及回溯到树的顶部。

Spring Session

what

把Servlet容器实现的httpSession替换为Spring-Session,专注于解决session管理问题,可简单快速且无缝的集成到我们的应用中。支持的功能如下:
1. 轻易把会话存储到第三方存储容器,框架提供了Redis,JVM的Map,Mongo,gemfire,hazelcast,jdbc等多种存储会话的容器的方式
2. 同一个浏览器同一个网站,支持多个会话问题
3. RESTful API,不依赖于Cookie。可通过标头来传递sessionID
4. WebSocket和Spring-session结合,同步生命周期管理

Spring Shell

what

提供了一个交互式shell,可以使用基于Spring的编程模型来插入自己的自定义命令。Shell已经从Spring Roo项目中提取出来,赋予了强大的基础和丰富的功能。Spring Shell的功能包括一个简单的注释驱动的编程模型来贡献自定义命令使用Spring的classpath扫描功能作为命令插件策略和命令开发的基础。

Spring XD

what

是Pivotal的大数据产品,它结合了Spring Boot和Grails,组成Spring IO平台的执行部分。尽管Spring XD利用了大量现存的Spring项目,但它是一种运行时环境,而不是一个类库或者框架,它包含带有服务器的bin目录,你可以通过命令行启动并与之交互。运行时可以运行在开发机上,客户端自己的服务器上,AWS EC2上或者Cloud Foundry上。

Spring FLO

what

Flo帮助开发人员更轻松地构建软件集成,提高开发速度和质量,解决组织需求。(for spring XD)

Spring Kafka

what

kafka时一种高吞吐量地分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其它用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消费。

Spring State Machine

what

使用Spring框架下的状态机概念创建的一种应用程序开发框架,它使得状态机结构层次化,简化了配置状态机的过程。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

newcih

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值