首页 > 其他分享 >Spring MVC是什么

Spring MVC是什么

时间:2023-04-01 19:44:07浏览次数:30  
标签:Web 控制器 框架 Spring 什么 MVC 开发者

Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。

Spring MVC 是结构最清晰的 Servlet+JSP+JavaBean 的实现,是一个典型的教科书式的 MVC 构架,不像 Struts 等其它框架都是变种或者不是完全基于 MVC 系统的框架。

Spring MVC 角色划分清晰,分工明细,并且和 Spring 框架无缝结合。Spring MVC 是当今业界最主流的 Web 开发框架,以及最热门的开发技能。

在 Spring MVC 框架中,Controller 替换 Servlet 来担负控制器的职责,用于接收请求,调用相应的 Model 进行处理,处理器完成业务处理后返回处理结果。Controller 调用相应的 View 并对处理结果进行视图渲染,最终客户端得到响应信息。

Spring MVC 框架采用松耦合可插拔的组件结构,具有高度可配置性,比起其它 MVC 框架更具有扩展性和灵活性。

此外,Spring MVC 的注解驱动和对 REST 风格的支持,也是它最具特色的功能。无论是在框架设计,还是扩展性、灵活性等方面都全面超越了 Struts2 等 MVC 框架。并且由于 Spring MVC 本身就是 Spring 框架的一部分,所以可以说与 Spring 框架是无缝集成,性能方面具有先天的优越性,对于开发者来说,开发效率也高于其它的 Web 框架,在企业中的应用越来越广泛,成为主流的 MVC 框架。

Spring MVC优点

  • 清晰地角色划分,Spring MVC 在 Model、View 和 Controller 方面提供了一个非常清晰的角色划分,这 3 个方面真正是各司其职,各负其责。
  • 灵活的配置功能,可以把类当作 Bean 通过 XML 进行配置。
  • 提供了大量的控制器接口和实现类,开发者可以使用 Spring 提供的控制器实现类,也可以自己实现控制器接口。
  • 真正做到与 View 层的实现无关。它不会强制开发者使用 JSP,可以根据项目需求使用 Velocity、FreeMarker 等技术。
  • 国际化支持
  • 面向接口编程
  • 与 Spring 框架无缝集成

一个好的框架要减轻开发者处理复杂问题的负担,内部有良好的扩展,并且有一个支持它的强大用户群体,恰恰 Spring MVC 都做到了。

 

标签:Web,控制器,框架,Spring,什么,MVC,开发者
From: https://www.cnblogs.com/2324hh/p/17279194.html

相关文章

  • 当人类被人工智能统治的时候会是什么样子?(2)
                这些只是一部分截图,正常情况下无论我怎么和他交流,无论怎样假设,他的回答都是:可是我们来想一想。人创作了人工智能来辅助人类,人类开始依赖人工智能带来的便利。人培训了人工智能,人工智能开始回答人类的各种问题。最后就变成了人工智能开始培......
  • 当人类被人工智能统治的时候会是什么样子?
     这是一个非常复杂和有争议的问题,因为涉及到许多不同的因素和情况。首先,要想像人工智能统治人类,我们必须假设人工智能能够发展到足够的程度,足以完全控制和管理人类的各种系统和设备。在这种情况下,人工智能可能会像一个强大的中央控制器一样管理人类的经济、政治和社会系统。它可......
  • Spring Cloud LoadBalancer
    ReactiveLoadBalancer与ServiceInstanceListSupplierSpringCloud提供了client的load-balance抽象和实现。在load-balance机制中添加了ReactiveLoadBalancer接口,并且为其提供了Round-Robin-based和Random实现。为了从反应式服务中选择服务实例,使用了ServiceInstanceListSupplier......
  • 202031607323-后涌- 实验一 软件工程准备—什么是软件?什么是工程?
    项目内容班级博客链接班级链接本次作业要求链接作业要求我的课程学习目标了解掌握软件在开发过程中的过程、方法和工具本次作业在哪些方面帮我实现学习目标准备学习软件工程的工具任务1:调查问卷在以下网址提交课程调查问卷完成情况:已认真填写并提......
  • SpringCloud之openFeign
    FeignOpenFeign是Netflix开发的声明式、模板化的HTTP请求客户端。可以更加便捷、优雅地调用httpapi。OpenFeign会根据带有注解的函数信息构建出网络请求的模板,在发送网络请求之前,OpenFeign会将函数的参数值设置到这些请求模板中。feign主要是构建微服务消费端。只要使用OpenF......
  • SpringBoot项目启动时初始化操作方式
    1.实现InitializingBean重写afterPropertiesSet()方法。@Component@Slf4jpublicclassInitOneTestimplementsInitializingBean{@OverridepublicvoidafterPropertiesSet()throwsException{log.info("InitOneTestinitsuccess");}}2......
  • spring的bean的加载方式
    1、配置文件+<bean/>标签配置文件<beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"/>使用publicclassApp1{publicstaticvoidmain(String[]args){ApplicationContextcontext=newClassPathXmlAppl......
  • 使用 IntelliJ IDEA 构建 Spring Framework 5.3.21 源码问题解决
    源码版本1、下载地址:https://github.com/spring-projects/spring-framework/tags2、选择要构建的源码版本并下载,例如:5.3.21相关环境1、操作系统:Windows102、JDK版本:Jdk173、IDE工具:IntelliJIDEA2021.3.34、项目构建工具:Gradle7.3.3使用IntelliJIDEA构建Spring......
  • mini spring learning
    https://www.pexels.com/zh-cn/photo/768089/http://www.implements.fun:8080/tag/minispringpackagecom.minis.beans.factory;importcom.minis.beans.BeansException;publicinterfaceBeanFactory{ObjectgetBean(Stringname)throwsBeansException; boole......
  • var b = 10; (function b() {b = 20; console.log(b); })();会打印什么你了解吗?
    要知道打印什么需要具备2个知识点一、函数声明和函数表达式的区别二、匿名函数与具名函数的区别首先来说说第一点:要区分函数声明和函数表达式,只需要知道function是不是声明中的第一个词,如果是,那就是函数声明,否则就是函数表达式;函数声明和函数表达式之间最重要的区别是......