Spring Boot 为何这么火?

没错 Spring Boot 愈来愈火了,并且火的超过了个人预期,做为一名行走一线的 Java 程序员,你可能在各个方面感觉到了 Spring Boot 的火。html

Spring Boot 的火

技术社区 Spring Boot 的文章愈来愈多;Spring Boot 相关的图文、视频课程愈来愈多;使用 Spring Boot 的互联网公司愈来愈多;如今出去面试 Java 工程师, Spring Boot 已经成了必问的内容。git

一切都在证实,Spring Boot 已经成为了 Java 程序员必备的技能。而且能够预见的是将来 Spring Boot 的发展还会更好。程序员

那我我的是如何感觉到这一点呢?github

三年前写的一个 Spring Boot 入门的文章,单篇文章阅读量超过百万!在百度指数上搜索 Spring Boot 关键字,能够看到一个气势如虹的增加曲线。面试

2016年,在 Github 上写了一个 Spring Boot 的开源项目,如今竟有 15000+ Star,6600 + Fork ,在 Github 上 Star 排名今次于 Spring Boot 官方。spring

项目名称:spring-boot-examples编程

项目地址:缓存

github.com/ityouknow/s…springboot

注:这个开源项目还有不少国际友人参与贡献。微信

Spring 官方也特别特别重视 Spring Boot ,直接将 Spring Boot 摆放到官网第一的位置上来。

Spring Boot 为何这么火

做为一个学习使用三年多 Spring Boot 的程序员,我来试着从个人角度来给你们聊聊 Spring Boot 为何这么火,能够在短短几年内给 Java 程序员带来这么大的变革。

从设计理念谈起

要说到 Spring Boot 为何这么火,就必须得聊聊 Spring Boot 的设计理念,正是此设计理念奠定了Spring Boot 开发设计的基准,让 Spring Boot 走到了今天。

那 Spring Boot 的设计理念是什么呢?它就是约定优于配置(convention over configuration)。

约定优于配置并非一个新概念,它是一种软件设计范式,很早就应用在软件架构设计中,它的做用是减小软件开发人员需作决定的数量,得到简单的好处,而又不失灵活性。

只是 Spring Boot 让这个设计理念上升了一个层次,Spring Boot 不止在某个功能上实现此设计理念,而是整个软件体系都在践行约定优于配置。

Spring Boot 体系将约定优于配置的思想展示得淋淋尽致,小到配置文件,中间件的默认配置,大到内置容器、生态中的各类 Starters 无不遵循此设计规则。

Spring Boot Jpa 80% 大部分查询功能都以约定的方式给与提供,另外 20% 复杂的场景,提供另外的技术手段来解决,典型的约定优于配置的实现。

Spring Boot Starter ,在项目启动的时候,根据约定信息对组件进行加载、初始化。所以项目中引入了对于的 Starter 以后,就能够到达开箱即用的效果。

甚至 Spring Cloud 的设计,也借鉴了约定优于配置的思想,不少组件都是在启动时,默认提供了其相关的功能,可让咱们的使用到达不多配置或者零配置。

Spring Boot 的 Starter 机制

Spring Boot Starter 是 Spring Boot 的 星辰大海。

正是由于丰富的 Spring Boot Starter ,让 Spring Boot 征服了使用各个开源软件的开发者,只要 Spring Boot Starter 指向哪一个开源软件,就会让某个开源软件变得异常好用。

这真的是这样,有一种神笔马良的感受(夸张了一点)。

那什么是 Spring Boot Starter 呢?

在 Spring Boot 中,Starter 是为快速应用开发提供“一站式服务”的依赖(Dependency)。Starter 使得开发人员在开始编写新的模块时不须要拷贝样板式的配置文件、编写样板式的代码,只须要提供最简单的配置便可开始编程。

Spring Boot Starter 有两个核心组件:自动配置代码和提供自动配置模块及其它有用的依赖。也就意味着当咱们项目中引入某个 Starter ,即拥有了此软件的默认使用能力,除非咱们须要特定的配置,通常状况下我仅须要少许的配置或者不配置便可使用组件对应的功能。

Spring Boot 由众多 Starter 组成,随着版本的推移 Starter 家族成员也与日俱增。在传统 Maven 项目中一般将一些层、组件拆分为模块来管理,以便相互依赖复用,在 Spring Boot 项目中咱们则能够建立自定义 Spring Boot Starter 来达成该目的。

Spring Boot Starter 统一了使用不一样软件的编程体验。

在没有使用 Spring Boot Starter 以前,咱们须要按照每一个开源软件的特性,将对应的组件包集成到咱们的开发项目中,由于每一个组件的设计理念和开发团队都不一致,所以会有不少不一样的调用风格在咱们的项目中。

Spring Boot 强大到不少技术社区都主动提供了对应的 Starter 组件,好比 MyBatis 、Apache Camel、Apache CXF 等等。随着 Spring Boot 的发展 Starter 组件会愈来愈多。

Spring Boot 很是强大的缘由之一就是提供了大量的 Spring Boot Starter ,如此多的“开箱即用” 的依赖模块,让咱们在平常开发中“拿来即用”,以便更加快速和高效专一于业务开发。

Spring Boot 的豪华开发团队

咱们常常会看到在介绍 Spring Boot 的时候有这么一句:Spring Boot 是由 Pivotal 团队提供的全新框架。由此咱们得知 Spring Boot 是由 Pivotal 团队所研发,那么 Pivotal 团队究竟是一个什么样的团队呢?其实这里的 Pivotal 团队是指 Pivotal 公司。

Pivotal 公司介绍:致力于“改变世界构造软件的方式(We are transforming how the world builds software)”,提供云原生应用开发 PaaS 平台及服务,帮助企业客户采用敏捷软件开发方法论,从而提升软件开发人员工做效率、减小运维成本,实现数字化转型、IT 创新,并最终实现业务创新。

Pivotal 公司可谓是大牛云集,公司研发的产品有: Spring 以及衍生框架、缓存中间件 Redis、消息队列框架 RabbitMQ、数据引擎产品 Greenplum,还有 Tomcat、Groovy 里的一些顶级开发者,DevOps 理论的提出者都在这个公司。

2016 年风靡全球的云原生理念亦是 Pivotal 公司提出,美国硅谷著名的精益化创业书籍的做者 Eric Ries 也加入了 Pivotal公司。Spring Boot 为何如此的优秀,正是由于背后有这些全球的顶级开发者。

Pivotal 公司的背后实际上是一场商业并购大片,有不少著名的公司在其身后,戴尔、Spring、EMC、VMware 等等,详情你们开源看这篇文章:《是时候给你们介绍 Spring Boot/Cloud 背后豪华的研发团队了》

有个好干爹

Spring Boot 的干爹是谁呢?毫无疑问就是 Spring 了。有图为证,看下面:

Spring Boot 彻底依赖 Spring 来开发,发明 Spring Boot 也是为了让你们更好的使用 Spring,而不是消灭 Spring ,因此说没有 Spring 这个干爹,就没有 Spring Boot 。

固然 Spring Boot 不只是基于 Spring 开发这么简单,Spring Boot 彻底继承了 Spring 干爹的声誉,说实话若是没有 Spring 这个老干爹十多年来打拼下来的天气,哪有 Spring Boot 今天来的风光。

2002 年的时候, Rod Johnson 可能也没有想到本身开创的一个小开源软件,能够发展到今天这么辉煌的一刻。到了今天,若是一个 Java 程序员说本身不知道 Spring ,那估计会把他看成外星人吧。

Spirng 当时以 IoC 和 Aop 开始发家,一开始的目标只是想干掉 EJB 这个庞然大物,可是随着时间的发展,Spring 开始了一路的逆袭之路,在2010年的时候 Spring 仍是 SSH 三大框架之一,到了今天 Spring 要说本身是老二,还这没有人敢说本身是第一。

正是由于 Spring 在 Java 社区中有如此强大的影响力,因此在 Spring Boot 一出生的时候,就受到了广大社区爱好者的关注、使用、写教程、贡献代码、提 Bug。正是由于庞大的开源爱好者,才一块儿反铺 Spring Boot ,让 Spring Boot 发展这么快,这么好。

若是你想系统的学习 Spring Boot ,给你们推荐一个 Spring Boot 中文索引,收集了 Spring Boot 中文社区的全部学习资料,地址: springboot.fun/。

以上即是我我的对 Spring Boot 为何这么火的一些浅薄看法,你们是怎么认为的呢,欢迎给我留言。


做者简介:纯洁的微笑,一个有故事的程序员。曾在互联网金融,第三方支付公司工做,现为一名自由职业者,和你一块儿用技术的角度去看这个世界。个人我的微信号 puresmile2,欢迎你们找我聊天,记录你个人故事。

相关文章
相关标签/搜索