前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring MVC 框架会帮你处理好一切

Spring MVC 框架会帮你处理好一切

作者头像
CSDN技术头条
发布2019-11-19 16:14:52
4650
发布2019-11-19 16:14:52
举报
文章被收录于专栏:CSDN技术头条CSDN技术头条
本文选自 | 达人课 《案例上手 Spring MVC》

作者 | 宁楠

责编 | 林瑟

今日调侃:Spring Boot 是 Spring MVC 重复造轮子吗?

一个通俗易懂的例子:

Spring MVC 相当于一辆手动挡汽车,Spring Boot 相当于把汽车变成自动挡,然后还加装了无钥匙进入、自动启停等功能,让你开车更省心。但是车的主体功能不变,你还是要用到 Spring MVC。

这就回归到了我们今天要讨论的话题,Spring MVC 是 Spring Boot 重复造的轮子吗?有必要学吗?

01

有了 Spring Boot,为什么还要学 Spring MVC

最近我写了一系列关于 Spring MVC 的文章(《Spring MVC 实战手册》),发表在 GitChat 上,得到了很多朋友的支持和反馈。但同时也有朋友问我,现在 Spring Boot 很流行,Spring MVC 还有必要学吗?相信这也是很多朋友们的疑问,那我们就来谈谈为什么要学 Spring MVC 吧。

02

什么是 Spring Boot

首先,Spring Boot 是现在比较流行的框架,可以实现快速开发,包括我自己也在用它开发项目。其优点是简化了 Spring 相关组件的配置,实现自动配置,降低了项目搭建的复杂度,使开发变得更加简便,从而提升开发效率。Spring Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。

Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。同时它集成了大量常用的第三方库配置,如 Jackson、JDBC、Mongo、Redis、Mail 等,Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的 Spring Boot 应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

也就是说,Spring Boot 只是起到一个承载的作用,辅助你简化项目搭建的过程。如果承载的是 Web 项目,使用 Spring MVC 作为 MVC 框架,那么整个业务工作流程还是由 Spring MVC 来完成的,因此 Spring Boot 并不能替代 Spring MVC,它只是简化了 Spring MVC 的相关配置,Spring Boot 帮你完成了很多底层工作。

03

Spring Boot 还是 Spring MVC

这里你可以能会有这样的疑问,既然使用 Spring Boot 可以简化 Spring MVC 的配置,开发起来更加快捷方便,那就用它就好了,为什么要学 Spring MVC ,放着简单的东西不用,非要去用复杂的东西呢?

这个问题需要因人而异,如果你是一个开发经验丰富、对 Spring 框架体系产品原理都非常了解的老司机,那不用说,肯定推荐你使用 Spring Boot。但是如果你是一个经验尚浅,对 Spring 框架体系不是很了解的开发者,过于简化的东西对你来说不见得是一件好事,简单的背后其实是隐藏了其中的学习曲线,在不需要了解 Spring MVC 原理的情况下就使用其进行开发,这叫知其然而不知其所以然,不是正确的学习方式。

Spring Boot 的优点是框架帮你屏蔽了很多底层操作,可以完成快速开发,但任何事情都有两面性,它屏蔽了底层操作的同时也屏蔽掉了你对于底层原理的理解和学习,假如只会简单的使用框架,一旦遇到较为复杂的问题,一定是一脸懵逼。

若不懂原理,是无法解决问题的,你只知道 Spring Boot 自动完成了一些操作,但是对于它究竟完成了哪些操作浑然不知,想想看,这样的方式真的有利于自我提高吗?除非你想一辈子搬砖,不考虑做一些底层架构或者更深层次的工作。

就好比一个赛车爱好者,如果仅仅是驾驶技术好,那永远只能是个票友;如果想成为真正的高手,一定是需要自己对赛车进行不断地调试改装,直至性能达到车子的极限。那如果连汽车的结构都不了解,只会开车,又怎么能完成车辆的性能优化和改装呢,因此,不但要驾驶技术一流,还要懂得赛车的内部原理,才能成为真正的老司机。

写代码也是一样,如果仅仅停留在使用快速开发框架完成项目,而不去钻研探究底层原理的话,永远也不会有质地提高,只会调方法堆逻辑。在没有夯实底层体系的情况下,一味追求敏捷高效,欲速则不达。

04

深度学习能力决定你的高度

这就是为什么很大一部分程序员都会担忧所谓的三十岁瓶颈期,但是你会发现牛逼的人一直很牛逼,二十多岁牛逼、三十多岁更牛逼,没有什么瓶颈,为什么会有这种差距,其中有一个很大的原因就是深度学习能力的差别,你永远停留在表面应用层,又怎么能够提高自己深度学习的能力呢,因此很多工作五六年的程序员和刚毕业的学生没有多大区别,无非是砖搬的更快一些而已。

如果不想一直搬砖,如果想提高自己的价值,那就不要只停留在应用层,多去关注应用层下面隐藏的内容,Spring MVC 也是框架,它也屏蔽了很多东西,这就是我们为什么要用 4 篇文章来介绍 Spring IoC 的原因,同时我也会手写一个 Spring MVC 框架,让大家更清晰的探究其底层原理。

当然,无论是 Spring Boot 还是 Spring MVC,包括 Java 语言本身在整个体系中都是应用层的东西,所以一直提倡大家去学习数据结构算法、计算机原理,包括计算机网络,只有底层架构扎实了,才会拔得更高,这是一种思维模式。

如果想更多了解 Spring MVC 的底层原理,学习探究框架底层原理的方法,可以来看看我的系列文章,已经整理成《案例上手 Spring MVC》这门课程。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GitChat精品课 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档