品牌型号:联想ThinkPad X1
系统:Windows10家庭版
软件版本:Spring 5.3.7
我们在使用java做企业级应用开发的时候,不管是中小型项目还是大型分布式系统,大概率都会用到Spring框架,它简化了java开发,轻量级并且能够降低代码耦合,在学习和工作中,很多java程序员对Spring的定位产生过困惑,在与MVC模式、前后端开发结合时,经常会好奇Spring到底是不是MVC框架,有些初学者在学到JavaWeb的时候,听说过Spring,一直困惑Spring到底是前端框架还是后端框架。这些问题,会影响初学者在开发时的技术选型,下面就给大家介绍一下Spring是MVC框架吗,Spring是前端还是后端框架的相关内容。
一、Spring是MVC框架吗
在理解这个问题前,需要先了解什么是MVC架构,MVC全称是Model-View-Controller,是一种软件架构模式,将应用拆分成了模型Model、视图View、控制器Controller三个部分,MVC可以让业务逻辑、数据展示还有用户交互相互分离,降低代码耦合。

Spring是轻量级的Java企业级开发框架,核心是IOC控制反转、DI依赖注入、AOP面向切面编程,是给整个Java应用提供基础的技术支撑,并不是专门给MVC模式设计的框架。让很多人产生概念混淆,是因为Spring框架中包含了一个专门针对Web的模块,也就是耳熟能详的SpringMVC,SpringMVC才是基于MVC模式设计的Web层框架,是Spring框架的一个子模块,这并不能代表Spring这个框架本身。

可以说Spring框架不是MVC框架,但是它包含的SpringMVC子模块是MVC模式的一种实现。
二、Spring是前端还是后端框架
判断是前端还是后端框架,我们要知道前端开发主要负责的是用户可以看到的界面交互,一种所见即所得的效果,核心技术有HTML、CSS、JS等,HTML负责搭建前端的骨架,CSS负责美化前端界面,JS则是让用户可以跟前端界面交互,前端技术主要聚焦于数据的展示、用户操作响应上。

后端开发负责的是业务逻辑的处理、数据该如何存储到数据库、接口怎么提供,简单来说处理前端传来的请求,然后根据业务逻辑处理后再把数据响应给前端,后端支撑的是整个应用核心功能。

在早期是Jsp扛下了所有,几乎MVC三层都写在Jsp上,后来EJB框架出来了,但是因为这个框架太重量级了,后来才有了Spring,在多年前Struts、Spring、Hibernate在业内简直是风生水起,后来SSM(SpringMVC、Spring、MyBatis)开始上位,在整个Spring框架的发展史中,Spring一直服务于后端开发场景,核心容器负责对象管理,数据访问模块负责跟数据库打交道,AOP模块负责业务逻辑的增强,SpringMVC模块负责接收和响应前端请求,这些都属于后端的范畴,所以说Spring不涉及前端界面的开发、渲染相关功能。
以上就是Spring是MVC框架吗,Spring是前端还是后端框架的全部内容了。Spring严格意义上讲,不是MVC框架,但是Spring的子模块SpringMVC是基于MVC模式设计的框架,是MVC模式的一种实现,从Spring发布至今,历经SSH到SSM,一直都服务于后端开发场景,不具备前端界面开发渲染的能力,所以Spring是后端框架。