微信号:csdnbigdata

介绍:CSDN分享Hadoop、Spark、NoSQL/NewSQL、HBase、Impala、内存计算、流计算、机器学习和智能算法等相关大数据观点,提供云计算和大数据技术、平台、实践和产业信息等服务.

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

2019-03-04 08:40 宁楠

本文选自 | 达人课 《案例上手 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》这门课程。

 

扫码免费试读了解


本课程共计 23 课,包含 Spring IoC、Spring MVC、MongoDB、项目实战 4 大部分。


GitChat 作者

宁楠:资深 Java 开发工程师、技术公众号原创博主、知识星球常驻嘉宾、讲师。曾任某大型互联网公司高级工程师,技术总监、创业公司 CTO。


适宜人群

  • 想要全面了解 Spring MVC 的开发人员

  • 有一定 Java Web 开发基础的人员

  • 渴望学习更多实际开发经验的人员


点击阅读原文,或识别上方海报二维码试读了解!

 
CSDN大数据 更多文章 不学设计模式,源码你都看不懂! 轻量级编程模型、Web 2.0 创业神器 Ruby on Rails&nbsp 太可怕了,这群人有毒,必须吐槽一下! 这个有争议的软件开发方法,陪伴一代程序员走过了 18 年 Spring MVC 是 Spring Boot 重复造轮子吗?
猜您喜欢 编程小白应该怎样学习编程? 魔法哥 QCon 2018 复盘(上):如何做一场 “有趣 + 实用 【美国基金会报告】10大领域 AI 超越人类时间表:机器智能大爆发 估值百亿的Airbnb的商业计划书,教科书级别的BP 准备了近6000元的福利,一天送出!