Spring Boot凭什么成为JVM圈的框架“一哥”

正如我们所知道的,Spring Boot近些年来很火。各个公司基本上都把原来SSM、SSH的项目迁移到了Spring Boot。那么Spring Boot究竟是如何征服JVM圈(Spring Boot不仅支持Java,还支持Groovy、Kotlin等语言),成为框架“一哥”的呢?

1.1 用数据说话

在讨论Spring Boot凭什么成为JVM圈的框架“一哥”之前,本着“问为什么之前,先弄清楚是不是”的原则,我们先客观地分析一下Spring Boot到底是不是“一哥”。

1.1.1 市场份额

英国软件安全服务商Snyk与Oracle官方刊物The Java Magazine联合推出的JVM Ecosystem Report 2020(《2020 JVM生态报告》)显示,有大约60%的用户在生产环境中使用了Spring(见图1-1),这对于一个第三方开源框架来说,算得上一个超级了不起的成绩了。

Spring Boot凭什么成为JVM圈的框架“一哥”

图1-1 Spring的市场份额

另外,在服务端框架方面,Spring Boot占据了15%的市场份额(见图1-2)。第二名是Spring MVC,占据了超过30%的市场份额。曾经依靠SSH组合风靡一时的Struts已经不见了踪影,真是令人唏嘘不已。不过,谁让Spring家族的产品那么好用呢!

Spring Boot凭什么成为JVM圈的框架“一哥”

Spring Boot的市场份额

通过这份报告,我们知道Spring家族在JVM生态中有着举足轻重的地位。报告中那些Spring MVC的市场份额,大致超过50%都依赖老旧系统。这就好比目前Windows系统的市场份额一样,Windows 10和Windows 7占主要部分,但还在运行Windows 7的大多是老机器。如果打算给计算机安装一个Windows系统,则在没有特殊要求的情况下,我们会选择安装Windows 10,而不会选择安装Windows 7。

1.1.2 关注度

了解完Spring Boot的市场份额,再来看看业界对于它的关注度(见图1-3),相关数据来自Google Trends,展示了Spring Boot自2014年发布至2020年4月的搜索指数。

Spring Boot凭什么成为JVM圈的框架“一哥”

Spring Boot的发展趋势

1.2 多方支持

一门技术的流行离不开多方的宣传和推广,还有“大厂”的背书。

1.2.1 官方力推

打开Spring的官网,你会看到一则超级醒目的标语——Spring makesJava simple(见图1-4)。让Spring具备simple这个能力的正是本书的主角——Spring Boot。

Spring Boot凭什么成为JVM圈的框架“一哥”

光说不练假把式,Spring很有“王婆卖瓜”的嫌疑。我们滚动鼠标,来到页面的下半部分,会看到一小段代码,是使用Spring Boot编写的一个HelloWorld示例(见图1-5)。

Spring Boot凭什么成为JVM圈的框架“一哥”

使用Spring Boot编写的Hello World示例

这个使用Spring Boot编写的Hello World示例很简洁,而这在SpringBoot出现之前是不可能做到的。Hello World示例旁边还有一段简短的文字描述,其中有一句很有意思——building services like a boss,直译过来就是“像个老板一样构建你的服务”。

这是外国人的表达方式,用中文表达就是——运筹帷幄之中,决胜千里之外。也就是说,一切尽在掌握之中。

1.2.2 “大厂”背书

在Spring官网首页正文的最下面引用了Netflix(奈飞)公司高级工程师的一段话,内容如图1-6所示

Spring Boot凭什么成为JVM圈的框架“一哥”

关于Spring的评论

这段话的大致意思就是,原先公司使用的框架都是自己开发的,在2019年年初的时候,已经完全迁移到Spring Boot上了,他对此感到很欣慰。

大家应该听说过Netflix,尤其是喜爱看美剧的读者应该比较熟悉它。这里不过多介绍Netflix,总之,这是一家很厉害的美国公司,它不仅业务厉害(能赚钱),技术也很厉害。Spring Cloud里的许多组件都来自这家公司,如Eureka、Zuul、Hystrix、Feign等。另外,Spring Cloud也是基于SpringBoot实现的。可以毫不夸张地说,Spring Boot是Java微服务的技术基石。

官方力推加上“大厂”背书,以及它与微服务的紧密关系,这一切都让Spring Boot的前景一片光明。难怪其从诞生至今的关注度一路飙升。

1.3 打铁还需自身硬

光有别人的力捧,自身没点真本事的话,那么只会昙花一现,不会长久。好在Spring Boot自身也是超级有实力的,不仅“颜值”高,而且有“内涵”。

1.3.1 高颜值

这可能是Spring Boot最大的卖点了,谁让技术圈也逃不过“看脸”这个定律呢?你可能会问:框架又没有五官,怎么定义它的颜值呢?我们可以把一个框架的易用性和优雅性比作一个框架的颜值。Spring Boot从易用性上来讲,可以说做到了极致。只需单击几次鼠标,然后写几行代码就可以完成一个基于Spring Web应用的Hello World程序。

例如,只需要写下面几行代码即可:

Spring Boot凭什么成为JVM圈的框架“一哥”

Just a few lines of code is all you need to start buildingservices like a boss.此言非虚。

而这在Spring Boot出现之前,是根本无法实现的,甚至想都不敢想。当年SSH组合风靡一时,如果你会搭建SSH环境,这就能成为你的一个技术亮点,基本上达到初、中级的水平了。这也并不是说当年对程序员的要求太低,而是由于那些XML配置实在太复杂、太麻烦了。它能复杂到什么程度呢?嗯……就是一个初学者可能花几天时间也调不通程序的程度,超级“劝退”。不过目前好了,我们有了Spring Boot。

我曾经以为注解加上properties配置文件已经做到了极致,直到后来遇到Spring Boot。让人不禁感叹:一山更比一山高!Spring Boot实在是高!人生苦短,我用Spring Boot!

Spring Boot的简单易用,也决定了使用它时的优雅性。添加新功能时,一般只需要一个注解、一个Starter就能解决问题。它的优雅主要体目前以下几个方面:

  • 没有复杂的XML配置
  • 善解人意的自动配置
  • 周到贴心的Starter
  • 简单得不能再简单的部署方式
  • 丰富且强劲的监控

这些特点目前不展开叙述,后面会一一进行讲解。

1.3.2 有内涵

作为一个有追求的框架,肯定不能仅靠一副好看的皮囊。Spring Boot或者说Spring,除了“颜值高”这个我们比较容易感知的特点,还有需要我们深入探索才能了解的丰富内涵。列如,它的两大核心特性——IOC和AOP,还有接下来要探讨的“约定优于配置”的设计哲学。

“约定优于配置”是什么意思呢?就是按照约定俗成的规范编程。SpringBoot制定了一套编程的最佳实践规范,如果我们没有特殊的需求,可以实现“开箱即用”。而这种规范是一种推荐性的而不是强制性的规范。我们还可以根据需要来自定义相应规范。这样既做到了开箱即用的便利性,也兼顾了按需定制的灵活性,在简单和灵活之间找到了一个完美的平衡点。

在Spring Boot中,这种“约定优于配置”的思想随处可见。例如,当引入spring-boot-starter-web依赖后,我们的应用就具备了Spring MVC的功能(提供HTTP服务、JSON支持和数据校验等)。而且我们不需要安装Tomcat或其他Web容器,可以直接以Jar的方式运行一个Web应用。这也是提前约定好的,在默认情况下打包应用时,Spring Boot会内嵌一个Tomcat。当然,也可以通过修改Maven依赖将Tomcat替换成其他容器,如Jetty,或者直接哪个容器也不用。

这种“约定优于配置”的思想,类似于现实生活中的风俗习惯。列如,我们会在春节吃饺子、贴春联、放鞭炮(当然不能在禁放区内燃放),西方国家的人会在感恩节吃火鸡、在平安夜互送苹果。这些都是在必定范围内形成的默契,大家不需要提前商量,到特定的日子就会默契地做一样的事情。

网上流传这样一句话:外表决定了我是否愿意去了解你的内在,而内在决定了我会不会一票否决你的外表。巧的是,Spring Boot不仅有着动人的外表(市场份额高、关注度高、简单易用等),还有着丰富的内在(“约定优于配置”的设计思想、IOC和AOP等强劲功能)。如果说Spring Boot是一个女孩,那么我能想到的形容她的词只有“秀外慧中”了。有框架如斯,夫复何求呀!

内容选自《SpringBoot趣味实战课》可以在京东商城搜到哦!!

侵权联系删除

© 版权声明

相关文章

暂无评论

none
暂无评论...