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

2022-10-28 11:10:45 浏览数 (1)

在本文中,我们将使用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接收参数的几种方式就介绍完了。也许你已经感觉到了,这样测试接口既要输入请求地址,又要设置请求类型,非常麻烦。

0 人点赞