为什么SpringBoot如此受欢迎?
可能有很多原因,为什么Spring和SpringBoot非常受欢迎,但在我看来,其主要原因如下:
1.显着提高开发人员的生产力
SpringBoot强大的自动配置机制使得开始使用基于Spring的应用程序非常简单。更重要的是,SpringBoot提供了多种启动器,这对于许多应用来说已经足够了。
您可以通过创建项目,选择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非常容易使用。
对于Kafka而言,Spring AMQP或Spring提供了更高级别的抽象,因此您可以轻松使用RabbitMQ或Kafka,而无需编写低级别样板代码。
3.微服务和云本地友好
微服务体系结构是当前最新的热门趋势,许多组织都偏爱微服务体系结构,并希望将其部署在AWS,CloudFoundry等云环境中。
通常,SpringBoot应用程序是作为自包含的部署单元(FAT Jar)构建的,并且使用其概要文件概念,我们可以在多个环境中部署相同的应用程序,而无需更改任何代码。除此之外,SpringCloud模块还提供了构建Cloud Native微服务所需的一组功能。
4.解决现代商业需求
现代应用需求已经发生了变化,并且不断变化得如此之快,我们不能等待3到4年的发布周期才能获得新功能。我们需要快速发布周期的框架来支持这些业务需求。
Spring的核心是一个依赖注入(DI)容器。但Spring的力量来自其丰富的投资组合项目。你想使用NoSQL数据库,你想要一个健壮的安全框架,你想要与社交平台集成,你想使用大数据框架,若你想使用像Kafka这样的Streaming平台,都已被覆盖了。
5. Spring开发者社区
这是Spring框架的最佳部分。你可以在Spring框架上找到一百万篇博客,里面有精彩的博客文章。您几乎可以找到StackOverflow上每个问题的解决方案。您可以轻松地通过社交软件与Spring Developer团队联系。
Spring和SpringBoot的挑战
当我和一些人(包括后辈和经验丰富的开发人员)交谈时,他们一直说的是“Spring是巨大而复杂的”.但我对此有完全相反的看法。在与他们谈到他们为什么认为Spring很复杂之后,我明白他们为什么会这样。这与我感觉学习JavaScript框架很复杂的原因是一样的。
我时不时想学习NodeJS和一个新的JavaScript框架,比如ReactJS或VueJS等。首先,我尝试列出一些需要学习的东西,以便我有一个基准,可以说我对NodeJS / ReactJS等。花了4到6个小时,知道有36,794种方法可以在JavaScript中做任何事情之后,我迷失在这个JavaScript工具和选项的海洋中。然后我觉得JavaScript很复杂。
我应该做的就是停止追逐所有框架/工具,先学习准系统JS或ES6,然后选择一个框架,比如说ReactJS,以及一个构建工具,比如WebPack,然后学习如何正确使用它们。
除了Spring的这种感觉是巨大而复杂的,我还看到了人们说SpringBoot很复杂的原因:
人们直接跳到SpringBoot,没有任何Spring知识 ,一切看起来都很神奇。只要采用默认设置并需要对其进行自定义,它就会很好地工作,感觉很复杂。
选项太多。 当你在Spring相关的问题上寻找帮助时,你总能找到100个选项来解决它,这让人困惑。
恕我直言, 一些Spring模块很复杂。 有时候,我不得不更深入地了解Spring Security源代码,我觉得它非常复杂,因为它对几乎所有东西都有自定义钩子。
如何有效地学习Spring和SpringBoot?
我会给你一些学习Spring和SpringBoot的技巧,基本上是我在学习时遵循的。
1.迭代学习
我不认为人们可以坐下来学习关于框架的一切。我遵循迭代方法。
迭代1: 遵循一些快速入门指南并创建一个包含所有依赖项的项目并构建一个Todo应用程序(Todo是新的HellowWorld权利:-))。当您成功运行示例应用程序时,它会提供信心。
迭代2: 阅读官方文档
了解这个特定框架试图解决什么问题以及在什么情况下这个框架是合适的,以及它不是一个好选择是非常重要的。在这方面,Spring框架文档非常棒,太长(800多页):-)。
迭代3: 构建一个适度复杂的应用程序
迭代4: 深入研究框架的源代码,并了解如何定制框架
首先,学习Spring Core框架
如果您没有Spring的知识,请不要跳到SpringBoot上。我强烈建议首先学习没有SpringBoot的Spring框架,以便知道SpringBoot在幕后做了些什么。
熟悉Spring DI概念,范围,注释,生命周期回调,bean配置样式(注释,@Beans等)。了解Spring如何使用Template模板(JdbcTemplate,JmsTemplate等)来避免编写样板代码。
3.了解SpringBoot AutoConfiguration的工作原理
SpringBoot的威力来自它的AutoConfiguration机制,它并不神奇。学习Spring的@Conditional特性并探索一些SpringBoot的AutoConfiguration类,比如DataSourceAutoConfiguration,JpaAutoConfiguration等,你可以很容易地理解SpringBoot是如何基于一些条件自动创建bean的。
4.跟随社区并阅读博客
这是Spring框架的最佳组成部分,也是庞大的社区,有数千篇关于Spring的博客。找到这些真棒Spring博客的一个简单方法是搜索阅读每周二在Spring Blog上发布的Josh Long(@starbuxman)的 Spring Week系列。
5.练习,练习和练习
没有什么可以取代“实践”.不管你读了多少,你观看的关于Spring的教程视频有多少。最好的学习方法就是使用它。
现在我几乎看不到Java项目不使用Spring和SpringBoot.你可以在项目上学习,但我强烈建议创建一个Github开源项目并使用各种Spring组合项目来实现它。
毕竟,学习还需要一些时间。花时间掌握它。耐心一点。如果你遇到困难,请与人联系。阅读书籍和博客。练习,练习和练习。
更多武汉IT培训相关资讯,请扫描下方二维码