強大的Spring家族都有哪些成員?

Spring所有的依賴如下,我們簡單介紹下。

開發者工具 Developer Tools

Spring Boot DevTools: 提供應用的快速重啟和代碼的熱部署,提升開發速度,增強開發體驗。Lombok: 自動生成樣本代碼的Java註解庫。可以在編譯的時候根據註解幫你增加需要的樣本代碼(get/set代碼,構造函數,toString和日誌等等),增強開發體驗。Spring Configuration Processor:配置文件提示工具,當你在application.yml或者application.properties中輸入時,會有相應的提示,方便我們寫配置文件。原理是會自動給@ConfigurationProperties註解的類生成一個元數據信息的json文件,開發工具比如idea會自動掃描識別這個josn然後在你寫配置文件的時候給予提示。

網站 Web

Spring Web:使用Spring MVC構建web或Restful應用,默認使用Tomcat做嵌入式的容器。Spring Reactive Web:使用Spring WebFlux 和Netty構建響應式web應用。Rest Repositories: 使用Spring Data REST構建一個REST的方式訪問數控倉庫,支持Spring Data JPA、Spring Data MongoDB、Spring Data Neo4j、Spring Data GemFire、Spring Data Cassandra的 repository 自動轉換成REST服務。就是把數據庫映射成了rest接口,可以方便的調用Spring Session:提供關於Session管理的api,簡化開發,比如多進程分佈式共享Session更加簡單快捷。Rest Repositories HAL Browser:提供支持HAL Brower規範的Rest方式訪問數據倉庫。HAL 即Hypertext Application Language的簡稱,就是一種json數據規範,簡單來說就是返回json數據的同時也返回服務器支持的方式方式和url等信息,目前github的接口就是使用這種方式。Spring HATEOAS:使用Spring/Spring MVC時,簡化創建支持HATEOAS規範的RestFul API, HATEOAS(Hypermedia as the engine of application state)Spring Web Services:簡化Web Services開發,提供SOAP協議支持,提供多種XML操作方式。
SOAP(原為Simple Object Access Protocol的[首字母縮寫]"首字母縮寫"),即簡單對象訪問協議)是交換數據的一種協議規範。Jersey: Java開發的RestFul的web服務,支持JAX-RS API。Vaadin :Java框架,用於基於Web組件構建富客戶端應用。Vaadin 就是用Java寫UI,而不用js/html/css寫UI,富客戶端可以簡單理解為頁面交互豐富(js實現動態交互)。

模板引擎 Template Engines

Thymeleaf: 面向HTML的模板引擎,Spring推薦使用的主要用來編寫html的模板引擎。Apache Freemarker: Freemarker老牌模板引擎了,不多說Mustache :邏輯模板,就是沒有if-else或者for語句,只用標籤。Groovy Templates: Groovy語言的模板引擎。

安全 Security

各種安全框架的集成

Spring Security: Spring官方的安全框架,高度定製的身份認證和訪問控制框架。OAuth2 Client: 支持OAuth2標準的客戶端OAuth2 Resourec Server:支持OAuth2標準的服務戶端Spring LDAP:LDAP協議支持。輕型目錄訪問協議(英文:Lightweight Directory Access Protocol,縮寫:LDAP,/ˈɛldæp/)是一個開放的,中立的,工業標準的應用協議,通過IP協議提供訪問控制和維護分佈式信息的目錄信息Okta: 支持Okat

關係型數據庫 SQL

各種關係型數據庫的支持和集成

JDBC API : jdbc封裝Spring Data JPA: JPA 規範支持Spring Data JDBC: 一個簡化jdbc的模板Spring DAta R2DBC[Experimental]:實驗特性,反應性數據庫連接,Reactive Relational Database ConnectivityMybatis Framework: Mybais框架支持Liquibase Migration: Liquibase 是一個數據庫版本控制框架。Fyway Migration: Fyway 也是一個數據庫版本控制框架。JooQ Access Layer: 類似JQuery風格的流式api操作數據庫的框架JooQ。IBM DB2 Driver: db2 驅動Apache Derby DataBase: Apache下完全由java實現的開源的關係型數據庫。H2 DataBase: 內存數據庫(佔用2M左右內存),簡單方便快捷HyperSQL DataBase:輕量級的Java數據庫MS SQL Server Driver:ms sql 驅動MySQL Driver: mysql 驅動Oracle Driver: oracler 驅動PostgreSQL Driver: postgreSQL 驅動

非關係型數據庫 NoSQl

各種nosql數據庫的支持和集成

Spring Data Redis : redis數據庫Spirn gData Reactive Reis: 響應式訪問RedisSpirng Data MongoDB: MongoDB數據庫Spring Data Reactive MongoDB: 響應式訪問MongoDBSpring Data Elasticsearch(Access +Driver):Elasticsearch 訪問加驅動,搜索引擎Spring Data For Apache solr:solr是Elasticsearch的具體實現,也是一個優秀的搜索引擎框架Spring Data for Apache Cassandra:Cassandra是一個免費開源的可以擴展的分佈式nosql數據庫Spirng Data Reactive for Apache Cassandra:響應式訪問CassandraSpring for Apache Geode:Apache Geode是一個數據管理平臺,可幫助用戶大規模構建與Pivotal Cloud Cache兼容的實時,高度併發,高性能和可靠的Spring Boot應用程序。Spirng Data Couchbase:NoSQL面向文檔的數據庫,提供內存優先的體系結構,地理分佈式部署和工作負載隔離。Spirng Data Reactive Couchbae:響應式訪問CouchbaseSpirng Data Neo4j:java版的圖數據庫,常用於分析用戶關係。

消息 Messaging

各種消息中間件的支持和集成

Spring IntegrationSpring for RabbitMQSpring for Apache kafkaSpring for Apache kafka StreamsSpirng for Apache ActiveMQ5Spirng for Apache ActiveMQ artemisWebSocketRSocketApache CamelSolace PubSub+

輸入/輸出 I/O

Spring Batch :批處理框架Java Mail Sender: 郵件支持Quartz Scheduler: 任務調度Spring Cache abstraction: 緩存統一抽象層

監控 ops

Spring Boot Actuator : 監控運行狀況、指標、會話等。Spring Boot Admin client: 一個web界面版的監控,客戶端Spring Boot Admin server: 服務端

測試 Testing

Spring REST Docs: 通過結合使用Asciidoctor手寫和通過Spring MVC Test自動生成的代碼片段來記錄RESTful服務。Contract Verifier:通過啟用“消費者驅動合同”(CDC)開發,將TDD升級到軟件體系結構級別。Contract Stub Runner:用於基於HTTP /消息傳遞的通信的Stub Runner。允許通過RestDocs測試創建WireMock存根。Embedded LDAP Server: LDAP 服務測試,平臺無關Embedded MongoDB Database: MongoDB測試 ,平臺無關

Spring Cloud

cloud基礎服務,特性功能無關

Cloud Bootstrap:Spring Cloud啟用相關,應用上下文環境相關。Function:支持函數式五服務器架構Task: 任務相關

Spring Clouud Security安全

Spring Security和OAuth2兩種認證模式。

Spring Cloud Tool工具

Cloud connectors:簡化了在Cloud Foundry和Heroku等雲平臺中連接服務和提高操作環境意識的過程。Open Service Broker: 框架,用於構建實現Open Service Broker API的Spring Boot應用程序,該應用程序可以向在Cloud Foundry,Kubernetes和OpenShift等雲原生平臺內運行的應用程序提供服務。

Spring Cloud Config 分佈式配置

Config Client : 配置的客戶端,用於拉取配置信息Config Server: 配置的服務端Vault Configuration:Vault做配置中心Apache Zookeeper Configuration: Zookeeper做配置中心Consul Configuration: Consul做配置中心

Spring Cloud Discovery 服務發現

image.png

Eureka Discovery Client:Eureka 客戶端Eureka Server: Eureka的服務端Apache Zookeeper Discovery:Cloud Foundry Discovery: 支持 Cloud FoundryConsul Discovery: 支持Consul

路由

Zuul:網關ZuulGateway:網關Ribbon:負載均衡OpenFeign:聲明式REST客戶端Cloud LoadBalancer: 負載均衡,統一接口封裝層

斷路器

Resilience4J:Resilience4J斷路器支持Hystrix: Hystrix 斷路器支持Hystrix Dashboard: Hystrix 儀表盤界面支持Turbine : 使用帶有Turbine和服務器發送事件的spring-cloud-netflix的斷路器指標聚合。Turbine Stream:使用帶有Turbine和Spring Cloud Stream的spring-cloud-netflix的斷路器度量聚合(需要綁定程序,例如Apache Kafka或RabbitMQ)。

追蹤

Sleuth:使用Sleuth通過日誌進行分佈式跟蹤Zipkin Client:支持Zipkin進行分佈式跟蹤

消息服務

Cloud Bus: 消息總線,需要綁定程序比如Kafka或RabbitMQCloud Stream: 需要綁定程序比如Kafka或RabbitMQ

雲計算支持

Foundry 雲平臺支持

亞馬遜雲 AWS

微軟雲 Microsoft Azure

谷歌雲 Goole Cloud Platform