Spring MVC常用注解

简介: 枯燥的嘞
+关注继续查看

简单介绍一下

Spring MVC是一种基于Java的Web开发框架,用于开发灵活、高效的MVC(Model-View-Controller)架构的Web应用程序。它是Spring框架的一部分,通过提供一组功能强大的类和注解,可以简化Web应用程序的开发过程。

Spring MVC的核心思想是将应用程序的逻辑分成三个层:模型层(Model)、视图层(View)和控制层(Controller)。这使得开发人员可以更好地管理代码,提高代码的可维护性和可测试性。

在Spring MVC中,控制器负责处理用户请求,并根据请求调用相应的服务业务逻辑,然后将结果返回给视图层进行显示。视图层负责展示数据,并与用户进行交互。模型层则负责处理数据的获取和存储。

使用Spring MVC时,开发人员可以通过配置文件或注解来定义路由映射、请求参数绑定、验证规则等。它还提供了许多功能强大的特性,如国际化支持、文件上传、异常处理等,帮助开发人员更加轻松地构建高性能的Web应用程序。

总之,Spring MVC是一种功能强大、灵活易用的Java Web开发框架,它可以帮助开发人员快速构建高性能、可扩展的Web应用程序。

来看看常用的注解

  • @Controller
    @Controller注解通常与@RequestMapping注解一起使用,用来指定处理请求的URL路径。

  • @RequestMapping
    @RequestMapping注解是一个用于映射URL路径的注解。它可以用在控制器类上或方法上,用于指定处理请求的URL路径和HTTP请求方法。

  • @GetMapping
    @GetMapping注解是一个用于标识一个方法为HTTP GET请求的注解。它可以被应用在控制器类和方法上。
    @GetMapping注解有以下属性:

    • value:指定请求的URL路径。
    • params:指定请求必须包含的参数及其值。
    • headers:指定请求必须包含的头部信息及其值。
    • consumes:指定处理请求的Content-Type。
    • produces:指定返回结果的Content-Type。
  • @PostMapping
    @GetMapping注解是一个用于标识一个方法为HTTP POST请求的注解。它可以被应用在控制器类和方法上。

  • @PutMapping
    @PutMapping用于将HTTP PUT请求映射到相应的处理方法上。它可以用在类级别或方法级别。
    可以通过@PathVariable、@RequestParam、@RequestBody等注解来获取HTTP请求中的参数,并将其传递给处理方法。

  • @DeleteMapping
    @DeleteMapping注解是Spring Framework中的一个注解,用于将HTTP DELETE请求映射到特定的方法上。
    使用@DeleteMapping注解可以方便地定义RESTful风格的API接口。它可以与@RequestMapping注解一起使用,并指定特定的URL路径,以及可选的请求参数、请求头等条件。

  • @PathVariable
    @PathVariable用于从URL路径中提取变量值,并将其绑定到方法参数上。
    使用@PathVariable注解的方式如下:

    1. 在控制器方法的参数列表中声明一个带有@PathVariable注解的参数。
    2. 在@PathVariable注解中指定要提取的变量名,该变量名应与URL路径中的变量名相匹配。
    3. 当请求到达控制器方法时,Spring MVC会自动将URL路径中对应的变量值传递给带有@PathVariable注解的参数。
  • @RequestParam
    @RequestParam用于将请求参数绑定到方法的参数上。
    使用@RequestParam注解可以将HTTP请求中的请求参数与方法的参数进行绑定。它有以下几个常用的属性:

    • value:指定请求参数的名称,可以通过该属性来指定请求参数的名称。
    • required:指定该参数是否为必需的,默认为true,表示该参数必须传递,如果未传递则会抛出异常;设置为false时,表示该参数可以不传递。
    • defaultValue:指定该参数的默认值,在请求参数未传递时使用默认值。
  • @RequestBody
    @RequestBody用于指定方法参数应该从HTTP请求的主体中获取。
    在Spring MVC中,@RequestBody注解可以用于处理POST请求的请求体。它可以将请求体的内容绑定到方法参数上,并将其转换为对应的Java对象。
    需要注意的是,@RequestBody注解只能用于POST请求,并且请求体必须是有效的JSON格式数据。如果请求体不是有效的JSON格式,或者请求的Content-Type与@RequestBody注解指定的参数类型不匹配,那么会导致请求失败。

  • @ResponseBody
    @ResponseBody用于标记某个方法返回的结果直接作为HTTP响应体的内容,而不是视图名或模型对象。当使用@ResponseBody注解时,Spring会自动将方法返回的对象转化为JSON、XML等格式的数据,并通过HTTP响应发送给客户端。
    通常情况下,Spring MVC框架会根据方法的返回值类型来决定如何处理返回结果:如果方法返回的是字符串类型,Spring会将其作为视图名进行解析;如果方法返回的是Java对象,Spring会将其作为模型对象返回给视图进行渲染。但是当使用@ResponseBody注解时,无论方法返回的是什么类型的数据,都会被作为HTTP响应的内容发送给客户端,而不会经过视图解析器进行处理。
    使用@ResponseBody注解可以实现将任意类型的数据直接返回给客户端,通常用于开发RESTful风格的API接口。在方法上添加@ResponseBody注解后,可以省略掉使用@RestController注解,因为@ResponseBody已经包含了@RestController的功能。

  • @ModelAttribute

    @ModelAttribute用于将请求参数绑定到控制器方法的参数上。当一个控制器方法被调用时,@ModelAttribute注解会根据请求参数的名称和控制器方法的参数类型来自动匹配并绑定请求参数。

    使用@ModelAttribute注解可以实现以下功能:

    • 数据绑定:通过将请求参数与控制器方法的参数进行绑定,可以将请求参数的值传递给控制器方法进行处理。

    • 表单回显:当使用表单提交数据时,可以使用@ModelAttribute注解将表单数据绑定到控制器方法的参数上,并在页面渲染时将参数的值回显到页面上。

    • 模型属性传递:当需要在多个控制器方法之间共享数据时,可以使用@ModelAttribute注解将数据设置为模型属性,该属性将会自动添加到请求的模型中,从而可以在不同的控制器方法中访问该数据。

  • @SessionAttribute

    @SessionAttribute是一用于将指定的属性存储在会话中。当使用@ModelAttribute注解时,Spring会先尝试从会话中查找与@SessionAttribute注解相匹配的属性,如果找到则将其赋值给对应的参数或方法参数,否则会创建一个新的实例并存储在会话中。

    使用@SessionAttribute注解时,需要在控制器类上添加@SessionAttributes注解,以指定哪些属性需要存储在会话中。

    请注意,在使用@SessionAttribute注解时,要确保在每个请求处理方法结束后,通过调用SessionStatus的setComplete()方法来清除会话中存储的属性。这可以避免潜在的会话泄漏和不一致。

  • @InitBinder

    @InitBinder它用于初始化WebDataBinder对象。

    在Spring MVC中,WebDataBinder对象用于将请求参数绑定到Controller方法的参数上。通过使用@InitBinder注解,我们可以指定一个方法在每次请求之前被调用,用来自定义WebDataBinder对象的初始化行为。

    使用@InitBinder注解时,需要创建一个带有@InitBinder注解的方法,并传入一个WebDataBinder参数。在这个方法中,我们可以对WebDataBinder对象进行一些自定义操作,比如设置格式化器、校验器等。

    @InitBinder注解只能用于标注非静态、无返回值且带有一个WebDataBinder参数的方法。这个方法将在每次请求之前被调用,用于初始化WebDataBinder对象。

  • @ExceptionHandler

    @ExceptionHandler 注解是一个用于处理异常注解。

    在 Spring MVC 中,我们可以使用 @ExceptionHandler 注解来处理控制器中抛出的特定类型的异常。当控制器方法抛出被 @ExceptionHandler 注解标记的异常时,Spring 将会自动调用带有 @ExceptionHandler 注解的方法来处理该异常。

    @ExceptionHandler 注解可以应用于整个控制器类或特定的控制器方法上。如果应用于控制器类上,则表示该类中的所有控制器方法都将采用相同的异常处理逻辑。如果应用于控制器方法上,则表示该方法将具有特定的异常处理逻辑。

    使用 @ExceptionHandler 注解时,需要指定要处理的异常类型。可以通过多次使用 @ExceptionHandler 注解来处理多个不同的异常类型。

    在使用 @ExceptionHandler 注解处理异常时,还可以通过方法参数传递异常信息。例如,可以将 HttpServletRequest 或 HttpServletResponse 对象作为方法参数,以便在处理异常时获取相关的请求或响应信息。

相关文章
|
5天前
|
设计模式 前端开发 JavaScript
Spring MVC(一)【什么是Spring MVC】
Spring MVC(一)【什么是Spring MVC】
|
10天前
|
存储 前端开发 Java
Spring MVC中@SessionAttributes注解使用详解
Spring MVC中@SessionAttributes注解使用详解
26 0
|
25天前
|
存储 前端开发 Java
Java Web框架,如Spring MVC,是一种用于构建Web应用程序的软件框架:学生考试Web应用程序
Java Web框架,如Spring MVC,是一种用于构建Web应用程序的软件框架。它们提供了一种结构化的方法,用于处理Web请求、生成动态内容和管理Web应用程序的组件。以下是关于Java Web框架和Spring MVC的详细解释,以及如何使用Spring MVC创建一个简单的Web应用程序的示例代码。
|
25天前
|
设计模式 存储 前端开发
介绍Spring MVC框架,以及如何使用它构建Web应用程序。
Spring MVC 是一个用于构建 Java Web 应用程序的强大框架。它基于经典的 MVC(Model-View-Controller)设计模式,提供了一种结构化的方法来开发可维护和可扩展的 Web 应用程序。在这篇文章中,我们将深入介绍 Spring MVC 框架,包括其核心概念、工作原理以及如何使用它构建 Web 应用程序。
|
25天前
|
前端开发 Java API
什么是RESTful API,Spring MVC如何支持RESTful架构
RESTful API(Representational State Transfer)是一种基于HTTP协议的软件架构风格,用于设计网络应用程序的API。它强调使用标准的HTTP方法(GET、POST、PUT、DELETE等)来进行资源的操作,以及使用URI来标识资源。RESTful API的设计目标是简单、可扩展、易于理解和使用。
|
27天前
|
设计模式 前端开发 Java
一篇文章让使你的Spring Mvc学习入门,还不来了解吗?
一篇文章让使你的Spring Mvc学习入门,还不来了解吗?
|
1月前
|
JSON 前端开发 Java
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(下)
29 0
|
1月前
|
JSON 前端开发 Java
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(上)
Spring MVC入门必读:注解、参数传递、返回值和页面跳转(上)
28 0
|
1月前
|
监控 前端开发 Java
学习 [Spring MVC] 的JSR 303和拦截器,提高开发效率
学习 [Spring MVC] 的JSR 303和拦截器,提高开发效率
26 0
|
1月前
|
前端开发 Java Spring
Spring MVC拦截器+注解方式实现防止表单重复提交
Spring MVC拦截器+注解方式实现防止表单重复提交
相关产品
云迁移中心
推荐文章
更多