为什么SpringBoot如此流行,如何有效地学习SpringBoot?

前言:

SpringBoot 是最流行和使用最广泛的 Java 框架。偶尔会讨论一下 “为什么 SpringBoot 如此受欢迎?” 来到我和我的朋友/同事之间。此外,我确实收到很多人发来的电子邮件,询问 “春天很大,如何快速学习它?” . 在这篇文章中,我将尝试回答这两个问题。

为什么 SpringBoot 如此受欢迎?

Spring 和 SpringBoot 非常受欢迎的原因可能有很多,但我认为以下是主要原因:

1. 开发人员生产力的大幅提升

SpringBoot 强大的自动配置机制使得上手一个基于 Spring 的应用程序变得非常容易。更重要的是,SpringBoot 提供了广泛的 Starter,这对于许多应用程序来说绰绰有余。

您可以通过简单地创建项目、选择 Web、Spring Data JPA/Mongo 等、H2/EmbeddedMongo、Spring Data REST starters 并创建域实体和存储库来创建由数据库支持的 REST API。就是这样,您拥有了一个功能齐全的 REST API。

这降低了新手和那些熟悉如何手动配置所有这些并且可能完成了 100 次并且厌倦了编写这个样板的人的进入门槛,SpringBoot 是一个礼物。

2. 简化的高级抽象

Spring 和 SpringBoot 的主要目标之一是让事情变得更容易。Spring 组合拥有自己强大的 Web MVC 框架、Spring Security 框架,但它的大多数其他项目都是为了提供更高级别的抽象以使使用它们更容易。

例如,Spring Data JPA 通过提供 API 来执行 CRUD 操作、排序、分页,从而使使用 JPA 变得非常容易,而无需您自己实现所有这些操作。

Spring AMQP 或 Spring for Kafka 提供了更高级别的抽象,因此您可以轻松使用 RabbitMQ 或 Kafka,而无需编写低级样板代码。

3. 微服务和云原生友好

微服务架构是目前最新的热门趋势,许多组织更喜欢微服务架构,并希望将它们部署在 AWS、CloudFoundry 等云环境中。

通常,SpringBoot 应用程序构建为自包含部署单元(FAT Jar),使用其 Profiles 概念,我们可以在多个环境中部署相同的应用程序,而无需更改任何代码。除此之外,SpringCloud 模块还提供了构建云原生微服务所需的大量功能。

4. 满足现代商业需求

现代应用程序的需求已经发生了变化,而且变化如此之快。我们不能等待 3 到 4 年的发布周期来获得新功能。我们需要具有快速发布周期的框架来支持这些业务需求。

Spring 的核心只是一个依赖注入 (DI) 容器。但 Spring 的力量来自其丰富的投资组合项目。你想使用 NoSQL 数据库,你想要一个健壮的安全框架,你想与社交平台集成,你想使用大数据框架,你想使用像 Kafka 这样的流媒体平台……你都被覆盖了。

5. Spring 开发者社区

这是 Spring 框架中最好的部分。您可以在 Spring 框架上找到一百万个包含精彩博客文章的博客。您几乎可以在 StackOverflow 上找到所有问题的解决方案。您可以通过 Twitter 轻松联系 Spring Developer 团队。

Spring 和 SpringBoot 的挑战

当我与一些人(包括初级开发人员和经验丰富的开发人员)交谈时,他们一直在说的一件事是“Spring 是巨大而复杂的”。但我对此持完全相反的看法。在与他们更多地谈论他们为什么觉得 Spring 很复杂之后,我明白了他们为什么会有这样的感觉。这也是我觉得学习 JavaScript 框架很复杂的原因。

我时不时地想学习 NodeJS 和一个闪亮的新 JavaScript 框架,如 ReactJS 或 VueJS 等。首先,我尝试列出要学习的东西,以便我有一个基准来说明我对 NodeJS 有相当的了解/ ReactJS 等。在花了 4 到 6 个小时并知道在 JavaScript 中有 36,794 种方法可以做任何事情之后,我迷失在这个 JavaScript 工具和选项的海洋中。然后我觉得 JavaScript 很复杂。

我应该做的是停止追逐所有框架/工具,先学习准系统 JS 或 ES6,然后选择一个框架,比如 ReactJS,和一个构建工具,比如 WebPack,然后学习如何正确地一起使用它们。

除了这种感觉 Spring 庞大而复杂之外,我还看到人们说 SpringBoot 复杂的原因如下:

  1. 人们直接跳到 SpringBoot 上而无需任何先前的 Spring 知识 ,一切看起来都很神奇。只要使用默认值,它就可以很好地工作,而当您需要对其进行自定义时,它会感觉很复杂。
  2. 选项太多。 当你在一些与 Spring 相关的问题上寻求帮助时,你总会找到 100 个选项来解决它,而选择哪一个令人困惑。
  3. 恕我直言, 一些 Spring 模块很复杂。 有时我不得不更深入地研究 Spring Security 源代码,我觉得它非常复杂,因为它几乎所有东西都有自定义钩子。

如何有效地学习 Spring 和 SpringBoot?

我会给你一些学习 Spring 和 SpringBoot 的技巧,基本上是我在学习它们时所遵循的。

1. 迭代学习

我不认为一个人可以一次坐下来学习有关框架的所有内容。我遵循迭代方法。

迭代 1: 遵循一些快速入门指南并创建一个包含所有依赖项集的项目并构建一个 Todo 应用程序(Todo 是新的 HellowWorld 权利:-))。当您成功运行示例应用程序时,它会给您信心。

迭代 2: 阅读官方文档
了解这个特定框架试图解决什么问题,这个框架在什么场景下是合适的,在什么地方它不是一个好的选择是非常重要的。在这方面,Spring 框架文档很棒而且太长(800 多页):-)。

迭代 3: 构建一个中等复杂的应用程序

迭代 4: 深入研究框架的源代码,看看如何自定义框架

2.首先学习Spring Core框架

如果您没有 Spring 的先验知识,请不要跳入 SpringBoot。我强烈建议首先在没有 SpringBoot 的情况下学习 Spring 框架,这样你就知道 SpringBoot 在幕后做了什么。

熟悉 Spring DI 概念、范围、注释、生命周期回调、bean 配置样式(注释、@Beans 等)。了解 Spring 如何使用模板模式(JdbcTemplate、JmsTemplate 等)来避免编写样板代码。

3. 了解 SpringBoot AutoConfiguration 的工作原理

SpringBoot 的强大来自于它的 AutoConfiguration 机制,它并不神奇。学习 Spring 的 @Conditional 特性并探索一些 SpringBoot 的 AutoConfiguration 类,如
DataSourceAutoConfiguration、JpaAutoConfiguration 等,您可以轻松了解 SpringBoot 如何根据某些条件自动创建 bean。

4.关注社区并阅读博客

这是 Spring 框架最好的部分,庞大的社区和成千上万的关于 Spring 的博客。找到这些很棒的 Spring 博客的一种简单方法是关注 Josh Long ( @starbuxman ) 每周二在Spring Blog上发布的This Week in Spring系列。

5.练习,练习,再练习

没有什么可以代替“实践”。无论您阅读了多少,您观看了多少 Spring 视频……学习的最佳方式就是使用它。

这些天来,我几乎看不到不使用 Spring 和 SpringBoot 的 Java 项目。您可以在项目工作的同时学习,但我强烈建议创建一个 Pet 项目并使用各种 Spring 投资组合项目来实现它。

毕竟这些,还需要一些时间来学习。花时间掌握它。耐心点。如果您遇到困难,请与人联系。阅读书籍和博客。练习,练习,再练习。

所有的面试题目都不是一成不变的,特别是像一线大厂,上面的面试题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。最后给大家分享Spring系列的学习笔记和面试题,包含spring面试题、spring cloud面试题、spring boot面试题、spring教程笔记、spring boot教程笔记、最新阿里巴巴开发手册(63页PDF总结)、2022年Java面试手册。一共整理了1184页PDF文档。私信博主(777)领取,祝大家更上一层楼!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值