Spring Initializr
Spring提供了一個快速構建應用的工具,只需要界面化的選擇你需要的jar依賴拄衰,就可以生成標準的項目代碼。
地址: https://start.spring.io/
- 項目支持 Maven和Gradle兩種管理方式
- 語言支持 Java榛了,Kotlin玉锌,Groovy
- 可以選擇SpringBoot的版本
- 輸入 項目信息選擇jar依賴,既可以自動生成項目代碼
- 可以預覽項目結構和代碼(快捷鍵ctrl+space)
- 可以把你的項目分享瓮顽,就是一個url县好,url后拼接相關參數
Spring所有的依賴如下,我們簡單介紹下暖混。
開發(fā)者工具 Developer Tools
Spring Boot DevTools: 提供應用的快速重啟和代碼的熱部署缕贡,提升開發(fā)速度,增強開發(fā)體驗拣播。
Lombok: 自動生成樣本代碼的Java注解庫善绎。可以在編譯的時候根據注解幫你增加需要的樣本代碼(get/set代碼诫尽,構造函數禀酱,toString和日志等等),增強開發(fā)體驗牧嫉。
Spring Configuration Processor:配置文件提示工具剂跟,當你在application.yml或者application.properties中輸入時减途,會有相應的提示,方便我們寫配置文件曹洽。原理是會自動給@ConfigurationProperties注解的類生成一個元數據信息的json文件鳍置,開發(fā)工具比如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隅俘,簡化開發(fā),比如多進程分布式共享Session更加簡單快捷笤喳。
Rest Repositories HAL Browser:提供支持HAL Brower規(guī)范的Rest方式訪問數據倉庫为居。HAL 即Hypertext Application Language的簡稱,就是一種json數據規(guī)范杀狡,簡單來說就是返回json數據的同時也返回服務器支持的方式方式和url等信息,目前github的接口就是使用這種方式捣卤。
Spring HATEOAS:使用Spring/Spring MVC時忍抽,簡化創(chuàng)建支持HATEOAS規(guī)范的RestFul API, HATEOAS(Hypermedia as the engine of application state)
Spring Web Services:簡化Web Services開發(fā)祟绊,提供SOAP協(xié)議支持遥赚,提供多種XML操作方式。SOAP(原為Simple Object Access Protocol的[首字母縮寫]"首字母縮寫")凫佛,即簡單對象訪問協(xié)議)是交換數據的一種協(xié)議規(guī)范讲坎。
Jersey: Java開發(fā)的RestFul的web服務孕惜,支持JAX-RS API。
Vaadin :Java框架晨炕,用于基于Web組件構建富客戶端應用衫画。Vaadin 就是用Java寫UI,而不用js/html/css寫UI瓮栗,富客戶端可以簡單理解為頁面交互豐富(js實現動態(tài)交互)削罩。
模板引擎 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協(xié)議支持盗蟆。輕型目錄訪問協(xié)議(英文:Lightweight Directory Access Protocol戈二,縮寫:LDAP,/??ld?p/)是一個開放的喳资,中立的觉吭,工業(yè)標準的應用協(xié)議,通過IP協(xié)議提供訪問控制和維護分布式信息的目錄信息
Okta: 支持Okat
關系型數據庫 SQL
各種關系型數據庫的支持和集成
- JDBC API : jdbc封裝
- Spring Data JPA: JPA 規(guī)范支持
- Spring Data JDBC: 一個簡化jdbc的模板
- Spring DAta R2DBC[Experimental]:實驗特性仆邓,反應性數據庫連接鲜滩,Reactive Relational Database Connectivity
- Mybatis 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: 響應式訪問Redis
- Spirng Data MongoDB: MongoDB數據庫
- Spring Data Reactive MongoDB: 響應式訪問MongoDB
- Spring Data Elasticsearch(Access +Driver):Elasticsearch 訪問加驅動嗓蘑,搜索引擎
- Spring Data For Apache solr:solr是Elasticsearch的具體實現,也是一個優(yōu)秀的搜索引擎框架
- Spring Data for Apache Cassandra:Cassandra是一個免費開源的可以擴展的分布式nosql數據庫
- Spirng Data Reactive for Apache Cassandra:響應式訪問Cassandra
- Spring for Apache Geode:Apache Geode是一個數據管理平臺匿乃,可幫助用戶大規(guī)模構建與Pivotal Cloud Cache兼容的實時桩皿,高度并發(fā),高性能和可靠的Spring Boot應用程序幢炸。
- Spirng Data Couchbase:NoSQL面向文檔的數據庫泄隔,提供內存優(yōu)先的體系結構,地理分布式部署和工作負載隔離宛徊。
- Spirng Data Reactive Couchbae:響應式訪問Couchbase
- Spirng Data Neo4j:java版的圖數據庫梅尤,常用于分析用戶關系柜思。
消息 Messaging
各種消息中間件的支持和集成
- Spring Integration
- Spring for RabbitMQ
- Spring for Apache kafka
- Spring for Apache kafka Streams
- Spirng for Apache ActiveMQ5
- Spirng for Apache ActiveMQ artemis
- WebSocket
- RSocket
- Apache Camel
- Solace PubSub+
輸入/輸出 I/O
- Spring Batch :批處理框架
- Java Mail Sender: 郵件支持
- Quartz Scheduler: 任務調度
- Spring Cache abstraction: 緩存統(tǒng)一抽象層
監(jiān)控 ops
- Spring Boot Actuator : 監(jiān)控運行狀況、指標巷燥、會話等赡盘。
- Spring Boot Admin client: 一個web界面版的監(jiān)控,客戶端
- Spring Boot Admin server: 服務端
測試 Testing
- Spring REST Docs: 通過結合使用Asciidoctor手寫和通過Spring MVC Test自動生成的代碼片段來記錄RESTful服務缰揪。
- Contract Verifier:通過啟用“消費者驅動合同”(CDC)開發(fā)陨享,將TDD升級到軟件體系結構級別。
- Contract Stub Runner:用于基于HTTP /消息傳遞的通信的Stub Runner钝腺。允許通過RestDocs測試創(chuàng)建WireMock存根抛姑。
- Embedded LDAP Server: LDAP 服務測試,平臺無關
- Embedded MongoDB Database: MongoDB測試 艳狐,平臺無關
Spring Cloud
cloud基礎服務定硝,特性功能無關
- Cloud Bootstrap:Spring Cloud啟用相關,應用上下文環(huán)境相關毫目。
- Function:支持函數式五服務器架構
- Task: 任務相關
Spring Clouud Security安全
Spring Security和OAuth2兩種認證模式蔬啡。
Spring Cloud Tool工具
- Cloud connectors:簡化了在Cloud Foundry和Heroku等云平臺中連接服務和提高操作環(huán)境意識的過程。
- 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 服務發(fā)現
- Eureka Discovery Client:Eureka 客戶端
- Eureka Server: Eureka的服務端
- Apache Zookeeper Discovery:
- Cloud Foundry Discovery: 支持 Cloud Foundry
- Consul Discovery: 支持Consul
路由
- Zuul:網關Zuul
- Gateway:網關
- Ribbon:負載均衡
- OpenFeign:聲明式REST客戶端
- Cloud LoadBalancer: 負載均衡薛训,統(tǒng)一接口封裝層
斷路器
- Resilience4J:Resilience4J斷路器支持
- Hystrix: Hystrix 斷路器支持
- Hystrix Dashboard: Hystrix 儀表盤界面支持
- Turbine : 使用帶有Turbine和服務器發(fā)送事件的spring-cloud-netflix的斷路器指標聚合恨旱。
- Turbine Stream:使用帶有Turbine和Spring Cloud Stream的spring-cloud-netflix的斷路器度量聚合(需要綁定程序辈毯,例如Apache Kafka或RabbitMQ)。
追蹤
- Sleuth:使用Sleuth通過日志進行分布式跟蹤
- Zipkin Client:支持Zipkin進行分布式跟蹤
消息服務
- Cloud Bus: 消息總線搜贤,需要綁定程序比如Kafka或RabbitMQ
- Cloud Stream: 需要綁定程序比如Kafka或RabbitMQ
云計算支持
Foundry 云平臺支持
亞馬遜云 AWS
微軟云 Microsoft Azure
谷歌云 Goole Cloud Platform
開發(fā)工具 IDEA
IDEA集成了 Spring Initializr谆沃,可以更加快速的創(chuàng)建一個Spring應用。
**File--New-Project--選擇Spring Initializr
點擊 next后入客,idea會請求https://start.spring.io/拉取依賴信息管毙。
選擇你的項目構建方式和開發(fā)語言并輸入項目信息
選擇項目依賴,這里跟sping頁面一致桌硫,點選更方便夭咬。
選擇后 右邊會有顯示,簡單快捷铆隘。