有了 Spring Boot,为什么还要懂 Spring MVC?

01 什么是 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 帮你完成了很多底层工作。

关注我的CSDN博客号,分享更多的技术学习文章,如果对于学习编程有很多疑惑,没有思路,不知道如何有效率的学习,可以添加我的Java交流学习qun:四九四,八零一,九三一。在qun里直接问我,我就是qun主,需要最新系统的学习教程也可以管我要。做了很多年开发,对于学习方式,如何提高自己的技术有一定的经验,术业有专攻,多跟有经验的人交流学习,对这个行业信息了解的多,职业发展的空间就越大。

02 Spring Boot 还是 Spring MVC?

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

这个问题需要因人而异,如果你是一个开发经验丰富、对 Spring 框架体系产品原理都非常了解的老司机,那不用说,肯定推荐你使用 Spring Boot。

但是如果你是一个经验尚浅,对 Spring 框架体系不是很了解的开发者,过于简化的东西对你来说不见得是一件好事。

简单的背后其实是隐藏了其中的学习曲线,在不需要了解 Spring MVC 原理的情况下就可以使用其进行开发,这叫知其然而不知其所以然,不是正确的学习方式。

Spring Boot 的优点是框架帮你屏蔽了很多底层操作,可以完成快速开发,但任何事情都有两面性。

它屏蔽了底层操作的同时也屏蔽掉了你对于底层原理的理解和学习,假如只会简单的使用框架,一旦遇到较为复杂的问题,一定是一脸懵逼。

因为若不懂原理,是无法解决问题的,你只知道 Spring Boot 自动完成了一些操作,但是对于它究竟完成了哪些操作确实浑然不知的,想想看,这样的方式真的有利于自我提高吗?

除非只想搬一辈子砖,不考虑做一些底层架构或者更深层次的工作。

就好比一个赛车爱好者,如果仅仅是驾驶技术好,那永远只能是个票友;如果想成为真正的高手,一定是需要自己对赛车进行不断地调试改装,直至性能达到车子的极限。

那如果连汽车的结构都不了解,只会开车,又怎么能完成车辆的性能优化和改装呢,因此,不但要驾驶技术一流,还要懂得赛车的内部原理,才能成为真正的老司机。

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

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

这就是为什么很大一部分程序员都会担忧所谓的三十岁瓶颈期,但是你会发现牛逼的人一直很牛逼,二十多岁牛逼、三十多岁更牛逼,没有什么瓶颈,为什么会有这种差距?

其中有一个很大的原因就是深度学习能力的差别,你永远停留在表面应用层,又怎么能够提高自己深度学习的能力呢,因此很多工作五六年的程序员和刚毕业的学生没有多大区别,无非是砖搬的更快一些而已。

如果不想一直搬砖,如果想提高自己的价值,那就不要只停留在应用层,多去关注应用层下面隐藏的内容,Spring MVC 也是框架,它也屏蔽了很多东西。

这就是我们课程开篇为什么要用 4 篇文章来介绍 Spring IoC 的原因,同时课程中也会带大家自己手写一个 Spring MVC 框架,探究其底层原理。

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

原文地址:https://www.cnblogs.com/zhanshuo/p/10839457.html

时间: 2024-11-08 23:08:27

有了 Spring Boot,为什么还要懂 Spring MVC?的相关文章

spring boot 2.0.3+spring cloud (Finchley)熔断器Hystrix

在分布式系统中服务与服务之间的依赖错综复杂,一种不可避免的情况就是某些服务会出现故障,导致依赖于他们的其他服务出现远程调度的线程阻塞.某个服务的单个点的请求故障会导致用户的请求处于阻塞状态,最终的结果是整个服务的线程资源消耗殆尽.由于服务的依赖性,会导致依赖于该故障服务的其他服务也处于线程阻塞状态,最终导致这些服务的线程资源消耗殆尽,知道不可用,从而导致整个服务系统不可用,即雪崩效应.为了防止雪崩效应,产生了熔断器模型. Hystrix是Netflix公司开源的一个项目,提供了熔断器功能,能阻止

spring boot 2.0.3+spring cloud (Finchley)7、微服务监控Spring Cloud Admin

参考:Spring Boot Admin 2.0 上手 Spring Boot Admin 用于管理和监控一个或多个Spring Boot程序,在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI,提供如下功能: 显示 name/id 和版本号 显示在线状态 Logging 日志级别管理 JMX beans 管理 Threads 会话和线程管理 Trace 应用请求跟踪 应用运行参数信息,如: Java 系统属性 Java 环境变量属性 内存信息 Spring 环

Spring Boot 必须先说说 Spring 框架!

现在 Spring Boot 非常火,各种技术文章,各种付费教程,多如牛毛,可能还有些不知道 Spring Boot 的,那它到底是什么呢?有什么用?今天给大家详细介绍一下. Spring Boot 的背景了解 Spring Boot 必须先说说 Spring 框架! 在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头老大. 用过 Spring 框架的都知道 Spring 能流行是因为它的两把利器:IOC 和 AOP,I

Spring 5.x 、Spring Boot 2.x 、Spring Cloud 与常用技术栈整合

本项目仓库提供spring.spring-boot.spring-cloud 的常用整合用例.每个用例都提供详细的图文说明,并给出官方文档的具体链接作为参考.随着spring的迭代,本仓库会持续更新,升级版本和丰富用例. 仓库地址:https://github.com/heibaiying/spring-samples-for-all 版本说明: Spring: 5.1.3.RELEASE Spring-Boot:2.1.1.RELEASE Spring-Cloud:Finchley.SR2 目

Spring Boot学习——第一个Spring Boot程序

依照下面的步骤创建项目: 点击 Next 项目介绍: Application.java中的主要代码: @SpringBootApplication public class ReaderApplication { public static void main(String[] args) { SpringApplication.run(ReaderApplication.class, args); } } @SpringBootApplication 启动器必须要有该注解注: @EnableA

spring boot分布式技术,spring cloud,负载均衡,配置管理器

spring boot分布式的实现,使用spring cloud技术. 下边是我理解的spring cloud的核心技术: 1.配置服务器 2.注册发现服务器eureka(spring boot默认使用的服务器类别) 3.RestTemplate通过ribbon实现负载均衡技术 具体请看下列图: 参考:http://www.cnblogs.com/skyblog/p/5127690.html

初入spring boot(八 )Spring Data REST

1. 什么是Spring Data REST Spring Data JPA是基于Spring Data 的Repository之上,可以将Repository自动输出为REST资源.目前Spring Data REST支持将Spring Data JPA.Spring Data MongoDB.Spring Data Neo4j.Spring Data Gemfire以及Spring Data Cassandra的Repository自动转换成REST服务. 2. Spring mvc中配置使

Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介绍了普通方式开发spring web mvc web service.接下来看看使用spring boot如何快速构建一个. Spring Boot使我们更容易去创建基于Spring的独立和产品级的可以”即时运行“的应用和服务.支持约定大于配置,目的是尽可能快地构建和运行Spring应用. 之前我们创建基于Spring的项目需要考虑添加哪些Spring依赖和第三方的依赖.使用Spring Boot后,我们可

Spring Boot示例 - 1. 使用Spring Boot Actuator构建RESTful web service

一.概述 Spring Boot Actuator是Spring Boot的子项目.使用它无需特别配置,即可为应用增加一些生产级别的服务.本教程展示使用Eclipse + Maven来从零开始构建一个RESTful的应用. 该应用作用是访问http://localhost:8080/fuck?name=xxx,会返回json字符串,并且访问http://localhost:8080/metrics 可以看到应用堆的一些信息. 什么是Spring Boot Actuator? Actuator是个