前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >斗转星移,无人能及——Spring MVC

斗转星移,无人能及——Spring MVC

作者头像
愿天堂没有BUG
发布2022-10-28 11:10:45
2470
发布2022-10-28 11:10:45
举报
文章被收录于专栏:愿天堂没有BUG(公众号同名)

在本文中,我们将使用Spring Boot来实现一个Web工程。

Spring MVC简介

Spring MVC是Spring Framework中的一个组件,原名为Spring Web MVC。

不过人们更喜欢将其称为Spring MVC。由它的名字可知,它是一款Web框架。

通过Spring Web MVC这个名字,我们就可以对它有一个宏观的认识。

· Spring彰显了它的家族身份,代表它来自Spring家族

· Web代表它是一款与Web相关的框架

· MVC则代表它的本领

那么,这个MVC具体是什么意思呢?MVC模式是软件工程中的一种软件架构模式,把软件系统分为3个基本部分:模型(Model)、视图(View)和控制器(Controller)。

· 模型(Model):Model是由一个实体Bean实现的,是数据的载体

· 视图(View):在Java EE应用程序中,View可以由JSP(Java ServerPage)担任。在目前的前/后端分离模式下,View已经由前端取代

· 控制器(Controller):在Java EE应用中,Controller可能是一个Servlet。在Spring MVC中,控制器的核心是DispatcherServlet

其实,我们在上一章的Hello World示例中,已经使用过Spring MVC了。

什么?你完全没感觉到?那就对了!这就是Spring Boot的“杀手锏”,它可以让你感觉不到它的存在。

简单回顾一下在Spring Boot中使用Spring MVC时需要我们做什么。

添加Web Starter:

编写Controller:

如果你在非Spring Boot环境下配置过Spring MVC,将更能体会到SpringBoot的简洁与高效(“没有对比,就没有伤害”这个道理在技术圈也同样适用)。然而,这对于Spring Boot来说只是日常操作,平平无奇。这里就不展开叙述了,后面会经常遇到。本章主要介绍Spring MVC的相关知识。

接收参数的各种方式

上一章中的Hello World程序只是一个非常简单的例子,hello方法没有接收任何参数,而在实际应用中,我们需要处理各式各样的参数。Spring MVC接收参数的方式大致可以分为以下4种:

· 无注解方式

· @RequestParam方式

· @PathVariable方式

· @RequestBody方式

常用注解

在学习如何接收参数之前,先来认识一下Spring MVC中的常用注解,如表4-1所示

@Controller

@Controller用来修饰类,表示该类为一个Controller对象。Spring容器在启动时会将该类实例化。

@RequestMapping

@RequestMapping用来修饰类或方法,设置接口的访问路径。在修饰类时,一般用于设置该类下所有接口路径的前缀。

@ResponseBody

74@ResponseBody用来修饰类或方法。在修饰方法时,该方法以JSON格式返回数据;在修饰类时,该类下的所有方法默认都以JSON格式返回数据。

@RequestParam

@RequestParam用来修饰参数,可以根据名字与参数进行绑定,相当于ServletRequest.getParameter()。

@RequestBody

@RequestBody用来修饰参数,接收JSON格式的参数,经常应用于AJAX请求,前/后端分离的场景下。

@PathVariable

@PathVariable用来修饰参数,用于获取URL上的值。除了上面这些,我们还会用到一些其他的注解。这些注解可以说是以上注解的一个“变种”,可以被称为“组合注解”。什么是组合注解呢?继续阅读,一看便知:

· @RestController=@Controller+@ResponseBody

· @GetMapping=@RequestMapping(method=RequestMethod.GET)

· @PostMapping=@RequestMapping(method=RequestMethod.POST)

· @PutMapping=@RequestMapping(method=RequestMethod.PUT)

· @PatchMapping=@RequestMapping(method=RequestMethod.PATCH)

· @DeleteMapping=@RequestMapping(method=RequestMethod.DELETE)

相信聪明的你已经发现了,组合注解就是具有多个功能的注解,是由多个注解或一个注解与一个特定的属性值组成的注解,相当于对注解的一种封装。封装后的注解具有多个功能,如:@RestController不仅可以标识一个Controller,还可以让被标识的Controller中的所有方法都返回JSON格式的数据;@GetMapping不仅可以映射一个请求路径,还可以让该路径只响应GET方法。

准备工作

在正式开始之前,需要做一些准备工作。首先,我们需要创建一个User类,用来接收JSON参数及返回JSON数据,代码如下:

至此,Spring MVC接收参数的几种方式就介绍完了。也许你已经感觉到了,这样测试接口既要输入请求地址,又要设置请求类型,非常麻烦。

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

本文分享自 愿天堂没有BUG 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档