做Java開發(fā)的不可能沒用過Spring框架,對Spring框架的應(yīng)用和理解幾乎也是面試標(biāo)配的問題。不過你有細數(shù)過Spring家族都有哪些項目么?今天來簡單整理下~
Spring io platform
Spring起初只專注ioc和aop,現(xiàn)在已發(fā)展成一個龐大體系。比如security、mvc等。如此一來,不同模塊或者與外部進行集成時,依賴處理就需要各自對應(yīng)版本號。比如,較新spring與較老的quartz,它們集成就會遇到問題,給搭建和升級帶來不便。
因此Spring IO Platform應(yīng)運而生,只要項目中引入了它,外部集成時依賴關(guān)系無需版本號
Spring boot
Spring Boot是由Pivotal團隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。
Spring framework
Java開發(fā)最常用的版本,整合了一些核心模塊,具體如下:
- 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
官方表示是大數(shù)據(jù)產(chǎn)品Spring XD的升級替代產(chǎn)品,Spring Cloud Data Flow繼承了Spring XD的優(yōu)點,并提供了更有擴展性的解決方案——利用云技術(shù)的原生方式。Spring Cloud Data Flow是一個混合計算模型,結(jié)合了流數(shù)據(jù)與批量數(shù)據(jù)的處理方式。開發(fā)者可以通過Spring Cloud Data Flow,在諸如數(shù)據(jù)獲取、實時分析、批處理等常見用例中執(zhí)行數(shù)據(jù)流的創(chuàng)建與編排。Spring Cloud Data Flow的目標(biāo)就是為了方便數(shù)據(jù)工程師,讓他們能專注于分析工作和具體的問題。Spring Cloud Data Flow僅提供了管理服務(wù)的模型。
Spring cloud
Spring Cloud 是Pivotal提供的用于簡化分布式系統(tǒng)構(gòu)建的工具集。Spring Cloud引入了云平臺連接器(Cloud Connector)和服務(wù)連接器(Service Connector)的概念。云平臺連接器是一個接口,需要由云平臺提供者進行實現(xiàn),以便庫中的其他模塊可以與該云平臺協(xié)同工作。
spring data
Spring Data是一個用于簡化數(shù)據(jù)庫訪問,并支持云服務(wù)的開源框架。其主要目標(biāo)是使得數(shù)據(jù)庫的訪問變得方便快捷,并支持map-reduce框架和云計算數(shù)據(jù)服務(wù)。此外,它還支持基于關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)服務(wù),如Oracle RAC等。對于擁有海量數(shù)據(jù)的項目,可以用Spring Data來簡化項目的開發(fā),就如Spring Framework對JDBC、ORM的支持一樣,Spring Data會讓數(shù)據(jù)的訪問變得更加方便。
Spring integration
Spring integration是一種企業(yè)級的事件驅(qū)動消息框架,你可以用它協(xié)同消息、通道、適配器、網(wǎng)關(guān)。
Spring batch
Spring Batch是一個輕量級的,完全面向Spring的批處理框架,可以應(yīng)用于企業(yè)級大量的數(shù)據(jù)處理系統(tǒng)。Spring Batch以POJO和大家熟知的Spring框架為基礎(chǔ),使開發(fā)者更容易的訪問和利用企業(yè)級服務(wù)。Spring Batch可以提供大量的,可重復(fù)的數(shù)據(jù)處理功能,包括日志記錄/跟蹤,事務(wù)管理,作業(yè)處理統(tǒng)計工作重新啟動、跳過,和資源管理等重要功能。
Spring security
安全框架,不多說了,對比產(chǎn)品有apache的shiro框架。
spring security Vs apache shiro
Spring hateoas
HATEOAS (Hypermedia as the Engine of Application State) 是 REST 架構(gòu)風(fēng)格上的一種限制?;?HATEOAS 的 REST 服務(wù)可以允許服務(wù)端和客戶端在最大程度上的解耦??蛻舳撕头?wù)端并不需要嚴(yán)格的接口規(guī)范??蛻舳丝梢酝ㄟ^服務(wù)端提供的超媒體表示來動態(tài)與服務(wù)端進行交互。Spring HATEOAS 與 Spring 框架中已有的 Web 服務(wù)功能很好的整合在一起,可以創(chuàng)建滿足 HATEOAS 要求的 REST 服務(wù)。
Spring social
Spring Social 是 Spring 框架中的一個子項目,該項目提供了一個可擴展的框架,允許開發(fā)人員很方便地與其他社交網(wǎng)絡(luò)平臺進行集成,同時也提供了流行社交平臺的相關(guān) API 支持。
Spring amqp
Spring AMQP項目將Spring的核心思想應(yīng)用于基于AMQP的消息解決方案的開發(fā)上。它提供了“template”這個高度抽象來發(fā)送和接收信息。它同樣提供了消息驅(qū)動的實體,這些實體存在于“listener container”容器中。這些庫不但使得AMQP資源的管理變得容易,與此同時促進了依賴注入和聲明式配置的使用。在所有的情況下,你將看到許多Spring框架提供的類似于JMS的便利。
Spring mobile
Spring mobile這個項目比較簡單,主要用于識別用戶端的訪問是來自PC、手機、還是平板。
Spring for android
Spring For Android是Spring框架的一個擴展,其主要目的在乎簡化Android本地應(yīng)用的開發(fā),這其中包括了你可以使用該項目提供的RestTemplate來為你的Android客戶端提供REST服務(wù),另外該項目還提供了跟其它諸如Twitter和Facebook等社交網(wǎng)絡(luò)的集成與OAuth授權(quán)客戶端等。
Spring web flow
剛開始看到這個名字以為是和Jbpm一個量級的產(chǎn)品,后來發(fā)現(xiàn)不太一樣,SWF只適合處理復(fù)雜頁面流程控制邏輯,更傾向于page flow。而且在國內(nèi)應(yīng)用貌似不太受重視。
Spring web service
用于開發(fā)webserive服務(wù),本人關(guān)注的不太多,先挖個坑吧~
Spring ldap
Spring ldap主要用于更方便的對ldap進行數(shù)據(jù)的CURD操作。
spring session
Spring session提供了一套企業(yè)級的session管理方案,方便構(gòu)建水平化的應(yīng)用。
Spring shell
Spring shell提供了一套交互式設(shè)計的shell。
Spring xd
大數(shù)據(jù)處理解決方案。
Spring flo
Spring Flo 是一個 JavaScript 庫,是基于 Spring Cloud Data Flow 中的流構(gòu)建器。
Spring kafka
主要用于集成kafka使用。
未完待續(xù)