为什么SpringBoot如此受欢迎?如何有效地学习SpringBoot?
SpringBoot是最流行和使用最广泛的Java框架。 有时,这种讨论“为什么SpringBoot如此受欢迎?” 来我和我的朋友/同事之间。 另外,我确实收到了许多人发来的电子邮件,询问“春天是巨大的,如何快速学习它?” 。 在这篇文章中,我将尝试回答这两个问题。
为什么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的使用变得非常容易,而无需自己实现所有这些。
Spring AMQP或Spring for Kafka提供了更高级别的抽象,因此您可以轻松使用RabbitMQ或Kafka,而无需编写低级的样板代码。
3.微服务和云原生友好
微服务架构是当前最新的热门趋势,许多组织更喜欢微服务架构,并希望将其部署在AWS,CloudFoundry等云环境中。
通常,SpringBoot应用程序是作为独立的部署单元(FAT Jar)构建的,使用其Profiles概念,我们可以在多个环境中部署相同的应用程序而无需更改任何代码。 除此以外,SpringCloud模块还提供了构建Cloud Native微服务所需的大量功能。
4.满足现代业务需求
现代应用程序需求已发生变化,并且瞬息万变。 我们等不及3到4年的发布周期才能获得新功能。 我们需要具有快速发布周期的框架来支持这些业务需求。
Spring的核心只是一个依赖注入(DI)容器。 但是Spring的力量来自其丰富的投资组合项目。 您想要使用NoSQL数据库,想要一个健壮的安全框架,想要与Social平台集成,想要与Big Data框架一起使用,想要使用像Kafka这样的Streaming平台……涵盖了所有内容。
5. Spring开发者社区
这是Spring框架的最佳组成部分。 您可以在Spring框架上找到100万个博客,其中包含许多精彩的博客文章。 您几乎可以在StackOverflow上找到解决每个问题的解决方案。 您可以通过Twitter轻松地联系Spring Developer团队。
Spring和SpringBoot面临的挑战
当我与某些人(初级和有经验的开发人员)交谈时,他们常说的一句话是“春天是巨大而复杂的”。 但是我对此有完全相反的意见。 在与他们更多地谈论了他们为什么认为Spring如此复杂之后,我理解了他们为何如此。 这也是我感到学习JavaScript框架很复杂的原因。
时不时地,我很想学习NodeJS和一个闪亮的新JavaScript框架,例如ReactJS或VueJS等。 ReactJS等。花了4到6个小时,并且知道有36,794种方法可以用JavaScript进行任何操作,但我迷失了这片JavaScript工具和选项。 然后我觉得JavaScript很复杂。
我应该做的是停止追逐所有框架/工具并首先学习准系统JS或ES6,选择一个框架(例如ReactJS)和一个构建工具(如WebPack),然后学习如何正确地一起使用它们。
除了对Spring的感觉是巨大而复杂的,我还看到人们说SpringBoot复杂的以下原因:
- 人们无需具备任何Spring知识即可直接跳到SpringBoot ,一切看起来都很神奇。 只要使用默认值,它就可以很好地工作,并且您需要自定义它。
- 选择太多。 当您在某个与Spring相关的问题上寻求帮助时,您总是会找到100种解决方案来解决,这使您难以选择。
- 恕我直言, 某些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如何使用Template模式(JdbcTemplate,JmsTemplate等)来避免编写样板代码。
3.了解SpringBoot自动配置的工作方式
SpringBoot的强大功能来自其自动配置机制,这并不是魔术。 学习Spring的@Conditional功能并探索一些SpringBoot的AutoConfiguration类,例如DataSourceAutoConfiguration,JpaAutoConfiguration等,您可以轻松地了解SpringBoot如何根据某些条件自动创建bean。
您可以阅读有关SpringBoot AutoConfiguration魔术如何工作的博客文章。 此处https://sivalabs.in/2016/03/how-springboot-autoconfiguration-magic/
4.关注社区并阅读博客
这是Spring框架的最佳组成部分,是一个庞大的社区,并且有成千上万的关于Spring的博客。 查找这些令人敬畏的Spring博客的一种简单方法是, 在每周二的Josh Long( @starbuxman )发表于Spring Blog的本周系列文章中。
5.练习,练习和练习
没有什么可以取代“实践”。 无论您阅读多少,在YouTube上观看了多少Spring视频。最好的学习方法是使用它。
这些天,我几乎看不到Java项目不使用Spring和SpringBoot。 您可以在从事该项目的同时学习,但是我强烈建议创建一个Pet项目并使用各种Spring组合项目来实施。
毕竟,学习仍然需要一些时间。 花一些时间来掌握它。 耐心一点。 如果遇到困难,请与他人联系。 阅读书籍和博客。 练习,练习和练习。
我希望它会有所帮助,并在您喜欢的情况下分享!
翻译自: https://www.javacodegeeks.com/2018/02/springboot-popular-learn-springboot-effectively.html
为什么SpringBoot如此受欢迎?如何有效地学习SpringBoot?相关推荐
- 为什么SpringBoot如此受欢迎,以及如何有效地学习SpringBoot?
SpringBoot是最流行和使用最广泛的Java框架. 有时这种讨论"为什么SpringBoot如此受欢迎?" 来我和我的朋友/同事之间. 另外,我确实收到了许多人发来的电子邮件 ...
- springboot 获取项目路径_怎样学习 SpringBoot
学习 SpringBoot 需要做哪些准备? IDE:IDEA 基础工具:JDK1.8.Maven SpringBoot 背景介绍 什么是 SpringBoot Spring Boot是 Spring ...
- 物流快递系统前、后端+Java语言+SpringBoot项目+MVC三层架构+maven+Mysql+Tomcat+可以用于学习SpringBoot项目入门
物流快递系统前.后端+Java语言+SpringBoot项目+MVC三层架构+Mysql+Tomcat+可以用于学习SpringBoot项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资 ...
- 学习 springboot 中出现的问题
目录 1.首先可能是springboot静态资源访问不到 2.下面是整和mybatis的时候mapper 文件产生的问题,不映射的问题,检查一下方面,如果还出现错误,我就无能为力了 1.首先你的map ...
- 零基础学习SpringBoot
注:本系列教程,又全部进行了更为深入的重写,可关注公众号:java4all,或进入SpringBoot教程,查看最新资料. 本篇是零基础学习SpringBoot专栏的目录,随时更新,可直接点击相应链接 ...
- 【深度学习】Github 最受欢迎的深度学习项目 TOP 20
必须做好一些是LINUX平台,甚至没有教材根本需要摸索学习的准备,如果有那个变成为在线服务的请第一时间通知我们 截止到 2017年 5月14日,Github 最受欢迎的深度学习项目 TOP 20 是哪 ...
- 学习Springboot一之Springboot+Mybatis(注解形式)+Mysql+Web简单Demo
学习SpringBoot,通过Springboot简单配置连接Mysql数据库,采用Mybatis注解方式实现数据库"增.删.改.查",结合Spring web实现页面呈现后,. ...
- 大学英语4级该如何有效的学习?
大学英语4级该如何有效的学习? 关于答主,英专毕业生,四级628,六级644,持有英语专业四级.专业八级.BEC高级.三级笔译证书,可以算是一只活脱脱的考证狂魔. 目前已经帮助140+考生通过四级,7 ...
- 锋迷商城学习--SpringBoot篇
一.项目整合与部署存在的问题 1.1 SSM手动整合存在的问题 SSM整合步骤多.配置繁琐 项目进行服务器部署步骤繁琐 1.2 如何简化这些繁琐的配置和部署步骤? SpringBoot就是一个可以简化 ...
最新文章
- oracle 取日期 加天,oracle日期,获取年月日等函数、日期函数、时区
- Android架构思考(模块化、多进程)
- 一个简单的例子教会您使用javap
- [JavaWeb-HTML]CSS与html结合方式
- VS在win32平台与mysql链接_mysql5.5.28-win32 + qt--4.8.2-vs2008 数据库驱动编译与连接...
- MySQL数据库常用的操作命令(二)
- 和nptf螺纹一样吗_常用数控加工计算公式和最全螺纹标准
- ThinkPHP截取部分文章文字、字符串
- 2021-2027全球与中国便携式VOC气体检测仪市场现状及未来发展趋势
- 苹果4怎么越狱_什么是刷机?什么是越狱?刷机和越狱是一回事吗?
- 【期末复习】计算机组成原理 袁春风
- huaweizip安装包_华为安卓安装包无法解压为什么
- 软件·质量·管理(2)任务排期
- HTML鲜花网页制作,Htlm技术设计鲜花盛开效果动态图
- 智慧党建系统开发建设
- win7开启ftp被动模式_Win7上防火墙开放FTP服务以及ping解决方案
- 汪国真的八字命理分析
- python代码圣诞树你还没有嘛?所有画法都在这篇文章里拉~
- 鼠标乱动原来是这个问题啊=.=
- OpenCV读出来的是按BGR存储的,如何转变成传统的RGB格式
热门文章
- 一些数学小公式/定理的证明
- [JLOI2015]战争调度
- P3288-[SCOI2014]方伯伯运椰子【0/1分数规划,负环】
- POJ2373-Dividing the Path【单调队列优化dp】
- E - Escape from the Island(最短路+dp)
- Codeforces Round #681 (Div. 2, based on VK Cup 2019-2020 - Final)
- [XSY4197] Snow(树形DP)
- Hadoop入门(十八)Mapreduce的倒排索引程序
- 漫画:删去k个数字后的最小值
- 一文告诉你如何导出 Git 变更文件