如您所知,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 生态系统报告2020》(《2020 JVM生态报告》)显示,大约60% 的用户在生产中使用Spring(见图1-1)。对于第三方开源框架来说,这是一个相当了不起的成就。
图1-1 弹簧市场占有率
此外,在服务器端框架方面,Spring Boot 拥有15% 的市场份额(见图1-2)。位居第二的是Spring MVC,拥有超过30% 的市场份额。曾经依靠SSH组合而流行的Struts已经消失了,真是令人悲哀。但谁让Spring 系列产品如此好用呢?
Spring Boot市场份额
通过这篇报告,我们了解到Spring家族在JVM生态系统中发挥着举足轻重的作用。报告称,Spring MVC 50%以上的市场份额依赖于遗留系统。这与目前Windows 系统的市场份额类似,Windows 10 和Windows 7 占据大多数,但大多数仍在运行Windows 7 的机器都是较旧的机器。如果您打算在计算机上安装Windows系统,除非有特殊要求,否则请选择安装Windows 10而不是Windows 7。
1.1.2 注意事项
了解了Spring Boot 的市场份额后,我们再来看看业界对Spring Boot 的关注程度(见图1-3)。相关数据来自Google Trends,显示了Spring Boot从2014年发布到2020年4月的搜索指数。
Spring Boot发展趋势
1.2 多方支持
一项技术的普及,离不开众多利益相关者的推广和推广,以及“大厂商”的支持。
1.2.1 官方推荐
当你打开Spring的官方网站时,你会看到一个非常醒目的标语:“——Spring让Java变得简单”(见图1-4)。赋予Spring如此简单的能力的是这本书的主角,—— Spring Boot。
Spring因只会说话,不会练手艺,被怀疑是“卖瓜老太太”。将鼠标滚动到页面底部,您将看到一小段代码,它是使用Spring Boot 创建的HelloWorld 示例(见图1-5)。
使用Spring Boot 创建的Hello World 示例
这个使用Spring Boot 创建的Hello World 示例非常简洁,但在Spring Boot 之前这是不可能的。在Hello World示例旁边,还有一句有趣的句子:——building services like a boss,字面意思是“像老板一样构建服务”。
这是外国人的汉语表达,意思是——运筹帷幄,决胜千里之外。换句话说,一切都在掌控之中。
1.2.2“大厂”审批
Spring官网正文底部引用了一位Netflix高级工程师的话。其内容如图1-6所示。
春天的评论
这句话的大致意思是,公司使用的框架最初是内部开发的,并在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 Web 应用程序的Hello World 程序。
例如,只需编写以下代码行:
只需几行代码即可开始构建出色的服务。这些话是真的。
在Spring Boot 之前,这根本是不可能、不可想象的。 SSH 组合当时非常流行。如果你能搭建一个SSH环境,这基本上是达到初级或中级水平的一个技术亮点。这并不是因为当时对程序员的要求太低,而是因为XML配置过于复杂和繁琐。到底有多复杂呢?即使是初学者也会感到非常“沮丧”,因为他们可能在几天后都无法调整程序。但现在Spring Boot 来了。
我一直以为注解和属性配置文件才是终极,直到后来我发现了Spring Boot。让人不禁感叹。每一座山都比另一座山高。春靴真的太棒了!生命短暂,所以使用Spring Boot。
Spring Boot的简单易用也决定了它使用时的优雅。添加新功能时,通常只需要注释和启动器即可解决问题。其优雅主要体现在以下几个方面:
不需要复杂的XML 配置,周到的自动配置,周到的部署起来再简单不过的启动器,丰富而强大的监控,我不会在这里介绍这些功能,但稍后我会向您一一介绍。
1.3.2 影响
作为一个追求的框架,不能仅仅依靠美观。 Spring Boot 或Spring,除了我们容易识别的“漂亮”特性外,还具有丰富的含义,需要深入探索才能理解。示例包括其两个核心功能:——IOC 和AOP,以及下面描述的“约定优于配置”设计理念。
“约定优于配置”是什么意思?它意味着按照既定规范进行编程。 SpringBoot开发了一套编程最佳实践,除非您有特殊需求,否则可以开箱即用。该规范不是必需的规范,而是推荐的规范。您还可以根据您的需求定制相应的规格。这不仅提供了开箱即用的便利性,还提供了按需定制的灵活性,在简单性和灵活性之间创造了完美的平衡。
这种“约定优于配置”的思想在整个Spring Boot 中随处可见。例如, spring-boot-starter-web 依赖项将Spring MVC 功能添加到您的应用程序中(提供HTTP 服务、JSON 支持、数据验证等)。您还可以直接在Jar 中运行Web 应用程序,而无需安装Tomcat 或任何其他Web 容器。这也是默认打包应用程序时预先约定的。 Spring Boot 包括Tomcat。当然,您可以更改Maven 依赖项,将Tomcat 替换为其他容器(例如Jetty),或者根本不使用容器。
这种“约定优于设定”的思想与现实生活中的*惯和*俗类似。比如过年的时候,人们吃饺子、唱春联、放鞭炮(当然不是禁区)。西方国家的人们在感恩节吃火鸡,在平安夜互赠苹果。这些都是在一定范围内形成的默契,不需要大家提前商量,在特定的日子里也会隐性地做同样的事情。
网上流传着这样一句话。 “你的外表决定了我是否了解你的内心,你的内心决定了我是否拒绝你的外表。”无独有偶,Spring Boot不仅拥有吸引人的外表(高市场占有率、高知名度、简单、易用等),还有丰富的内涵(“约定优于配置”的设计理念、IOC等)、强大的功能AOP 的特点)。如果Spring Boots是个女孩,我能想到的唯一形容词就是“美丽、聪明”。有了这样的框架,你还能要求什么呢?
内容已从:010到30000中筛选出来,可以在京东上找到。
删除侵权联系人
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。