说一说Spring家族
做Java开发的不可能没用过Spring框架,对Spring框架的应用和理解几乎也是面试标配的问题。不过你有细数过Spring家族都有哪些项目么?今天来简单整理下~
Spring io platform
Spring起初只专注ioc和aop,现在已发展成一个庞大体系。比如security、mvc等。如此一来,不同模块或者与外部进行集成时,依赖处理就需要各自对应版本号。比如,较新spring与较老的quartz,它们集成就会遇到问题,给搭建和升级带来不便。
因此Spring IO Platform应运而生,只要项目中引入了它,外部集成时依赖关系无需版本号
Spring boot
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring framework
Java开发最常用的版本,整合了一些核心模块,具体如下:
- spring-aop
- spring-aspects
- spring-beans
- spring-context
- spring-core
- spring-expression
- spring-framework-bom
- spring-instrument
- spring-jdbc
- spring-jms
- spring-messaging
- spring-orm
- spring-oxm
- spring-text
- spring-tx
- sprng-web-reactive
- spring-web
- spring-webmvc
- spring-websocket
Spring cloud data flow
官方表示是大数据产品Spring XD的升级替代产品,Spring Cloud Data Flow继承了Spring XD的优点,并提供了更有扩展性的解决方案——利用云技术的原生方式。Spring Cloud Data Flow是一个混合计算模型,结合了流数据与批量数据的处理方式。开发者可以通过Spring Cloud Data Flow,在诸如数据获取、实时分析、批处理等常见用例中执行数据流的创建与编排。Spring Cloud Data Flow的目标就是为了方便数据工程师,让他们能专注于分析工作和具体的问题。Spring Cloud Data Flow仅提供了管理服务的模型。
Spring cloud
Spring Cloud 是Pivotal提供的用于简化分布式系统构建的工具集。Spring Cloud引入了云平台连接器(Cloud Connector)和服务连接器(Service Connector)的概念。云平台连接器是一个接口,需要由云平台提供者进行实现,以便库中的其他模块可以与该云平台协同工作。
spring data
Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得数据库的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。此外,它还支持基于关系型数据库的数据服务,如Oracle RAC等。对于拥有海量数据的项目,可以用Spring Data来简化项目的开发,就如Spring Framework对JDBC、ORM的支持一样,Spring Data会让数据的访问变得更加方便。
Spring integration
Spring integration是一种企业级的事件驱动消息框架,你可以用它协同消息、通道、适配器、网关。
Spring batch
Spring Batch是一个轻量级的,完全面向Spring的批处理框架,可以应用于企业级大量的数据处理系统。Spring Batch以POJO和大家熟知的Spring框架为基础,使开发者更容易的访问和利用企业级服务。Spring Batch可以提供大量的,可重复的数据处理功能,包括日志记录/跟踪,事务管理,作业处理统计工作重新启动、跳过,和资源管理等重要功能。
Spring security
安全框架,不多说了,对比产品有apache的shiro框架。
spring security Vs apache shiro
Spring hateoas
HATEOAS (Hypermedia as the Engine of Application State) 是 REST 架构风格上的一种限制。基于 HATEOAS 的 REST 服务可以允许服务端和客户端在最大程度上的解耦。客户端和服务端并不需要严格的接口规范。客户端可以通过服务端提供的超媒体表示来动态与服务端进行交互。Spring HATEOAS 与 Spring 框架中已有的 Web 服务功能很好的整合在一起,可以创建满足 HATEOAS 要求的 REST 服务。
Spring social
Spring Social 是 Spring 框架中的一个子项目,该项目提供了一个可扩展的框架,允许开发人员很方便地与其他社交网络平台进行集成,同时也提供了流行社交平台的相关 API 支持。
Spring amqp
Spring AMQP项目将Spring的核心思想应用于基于AMQP的消息解决方案的开发上。它提供了“template”这个高度抽象来发送和接收信息。它同样提供了消息驱动的实体,这些实体存在于“listener container”容器中。这些库不但使得AMQP资源的管理变得容易,与此同时促进了依赖注入和声明式配置的使用。在所有的情况下,你将看到许多Spring框架提供的类似于JMS的便利。
Spring mobile
Spring mobile这个项目比较简单,主要用于识别用户端的访问是来自PC、手机、还是平板。
Spring for android
Spring For Android是Spring框架的一个扩展,其主要目的在乎简化Android本地应用的开发,这其中包括了你可以使用该项目提供的RestTemplate来为你的Android客户端提供REST服务,另外该项目还提供了跟其它诸如Twitter和Facebook等社交网络的集成与OAuth授权客户端等。
Spring web flow
刚开始看到这个名字以为是和Jbpm一个量级的产品,后来发现不太一样,SWF只适合处理复杂页面流程控制逻辑,更倾向于page flow。而且在国内应用貌似不太受重视。
Spring web service
用于开发webserive服务,本人关注的不太多,先挖个坑吧~
Spring ldap
Spring ldap主要用于更方便的对ldap进行数据的CURD操作。
spring session
Spring session提供了一套企业级的session管理方案,方便构建水平化的应用。
Spring shell
Spring shell提供了一套交互式设计的shell。
Spring xd
大数据处理解决方案。
Spring flo
Spring Flo 是一个 JavaScript 库,是基于 Spring Cloud Data Flow 中的流构建器。
Spring kafka
主要用于集成kafka使用。
未完待续