SpringBoot快速构建应用工具

Spring Initializr

Spring提供了一个快速构建应用的工具,只需要界面化的选择你需要的jar依赖,就可以生成标准的项目代码。
地址: https://start.spring.io/

  • 项目支持 Maven和Gradle两种管理方式
  • 语言支持 Java,Kotlin,Groovy
  • 可以选择SpringBoot的版本
  • 输入 项目信息选择jar依赖,既可以自动生成项目代码
  • 可以预览项目结构和代码(快捷键ctrl+space)
  • 可以把你的项目分享,就是一个url,url后拼接相关参数

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 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的具体实现,也是一个优秀的搜索引擎框架
  • Spring Data for Apache Cassandra:Cassandra是一个免费开源的可以扩展的分布式nosql数据库
  • Spirng Data Reactive for Apache Cassandra:响应式访问Cassandra
  • Spring for Apache Geode:Apache Geode是一个数据管理平台,可帮助用户大规模构建与Pivotal Cloud Cache兼容的实时,高度并发,高性能和可靠的Spring Boot应用程序。
  • Spirng Data Couchbase:NoSQL面向文档的数据库,提供内存优先的体系结构,地理分布式部署和工作负载隔离。
  • 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: 缓存统一抽象层

监控 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 Foundry
  • Consul Discovery: 支持Consul

路由

  • Zuul:网关Zuul
  • Gateway:网关
  • 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或RabbitMQ
  • Cloud Stream: 需要绑定程序比如Kafka或RabbitMQ

云计算支持

Foundry 云平台支持

亚马逊云 AWS

微软云 Microsoft Azure

谷歌云 Goole Cloud Platform

开发工具 IDEA

IDEA集成了 Spring Initializr,可以更加快速的创建一个Spring应用。

**File--New-Project--选择Spring Initializr

点击 next后,idea会请求https://start.spring.io/拉取依赖信息。


选择你的项目构建方式和开发语言并输入项目信息

选择项目依赖,这里跟sping页面一致,点选更方便。


选择后 右边会有显示,简单快捷。


方便复制POM依赖,这里放个全部的依赖配置

Spring POM 完全配置,方便复制

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容