为什么SpringBoot如此受欢迎以及如何有效地学习SpringBoot?

SpringBoot是最流行和最广泛使用的Java框架。有时我和我的朋友/同事之间会讨论“为什么SpringBoot如此受欢迎?”。此外,我收到来自不同人的电子邮件,询问“Spring是巨大的,如何快速学习?”。在这篇文章中,我将尝试回答这两个问题。

为什么SpringBoot如此受欢迎?

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

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

SpringBoot强大的自动配置机制使得开始使用基于Spring的应用程序变得非常容易。更重要的是,SpringBoot提供了大量的Starters,这对于许多应用来说已经足够了。

您可以通过创建项目,选择Web,Spring Data JPA / Mongo等,H2 / EmbeddedMongo,Spring Data REST启动器以及创建域实体和存储库来创建由数据库支持的REST API。就是这样,你有一个功能齐全的REST API。

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

2.简化的高级抽象

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

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

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

3.微服务和云原生友好

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

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

4.满足现代业务需求

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

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

5. Spring开发者社区

这是Spring框架的最佳部分。你可以在Spring框架上找到一百万个博客,上面有很棒的博客文章。您几乎可以找到StackOverflow上每个问题的解决方案。您可以轻松地通过Twitter与Spring Developer团队联系。

Spring和SpringBoot面临的挑战

当我与一些人(小辈和经验丰富的开发人员)交谈时,他们一直在说的是“春天是巨大而复杂的”。但我对它有完全相反的意见。在与他们交谈之后,为什么他们觉得Spring很复杂,我理解为什么他们会这样。这也是我觉得学习JavaScript框架很复杂的原因。

我时不时地想学习NodeJS和一个像ReactJS或VueJS等一样闪亮的新JavaScript框架。首先,我尝试列出要学习的东西,以便我有一个基准来说我对NodeJS /有很好的了解ReactJS等花了4到6个小时,知道有36,794种方法可以用JavaScript做任何事情,我迷失在这个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概念,Scopes,Annotations,Life Cycle回调,bean配置样式(注释,@ Beans等)。知道Spring如何使用模板模式(JdbcTemplate,JmsTemplate等)来避免编写样板代码。

3.了解SpringBoot AutoConfiguration的工作原理

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

你可以阅读关于SpringBoot AutoConfiguration magic如何工作的博客文章这里https://sivalabs.in/2016/03/how-springboot-autoconfiguration-magic/

4.关注社区并阅读博客

这是Spring框架的最佳部分,庞大的社区,有成千上万的博客写关于Spring。找到这些令人敬畏的Spring博客的一个简单方法是遵循Josh Long(@starbuxman)在每周星期二发布在Spring博客上的本周春季系列。

5.练习,练习和练习

没有什么可以取代“实践”。无论你阅读多少,你在YouTube上观看的春季视频有多少……最好的学习方法就是使用它。

这些天我几乎看不到Java项目没有使用Spring和SpringBoot。您可以在项目工作中学习,但我强烈建议您创建一个Pet项目并使用各种Spring项目实现它。

毕竟,这还需要一些时间来学习。花时间掌握它。耐心一点。如果你卡住了,就会联系到别人。阅读书籍和博客。实践,实践和实践。

我希望它是有用的,如果你喜欢它分享它 🙂

Categories: Spring Boot

发表评论 取消回复

placeholder.jpg

电子邮件地址不会被公开。

Name
Email
Website
What's on your mind?