SpringMVC常用注解笔记

这篇具有很好参考价值的文章主要介绍了SpringMVC常用注解笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringMVC注解开发详解

路径映射@RequestMapping
  • @RequestMapping("/user") ,用于映射 HTTP 请求到特定的处理方法(Controller 方法)上。它可以用于类级别和方法级别,用于定义处理请求的路径和其他相关属性。包括 GET、POST、PUT、DELETE 等。默认情况下,它适用于处理所有类型的请求。如果要限定 @RequestMapping 的请求方法,可以使用 method 属性指定所需的请求方法。例如:

    @ResponseBody
    @RequestMapping(value = "/users", method = RequestMethod.GET)
    public String getUserList() {
        // 处理用户列表 GET 请求
        return "user-list";
    }
    
  • 需要注意的是,在 Spring 4.3 及以上版本,可以使用更简洁的语法来指定请求方法。例如:

    @ResponseBody
    @GetMapping("/users")
    public String getUserList() {
        // 处理用户列表 GET 请求
        return "user-list";
    }
    @ResponseBody
    @PostMapping("/users")
    public String createUser() {
        // 处理创建用户 POST 请求
        return "user-created";
    }
    
返回类型@ResponseBody
  • @ResponseBody 是 Spring MVC 中的注解,用于指示方法或控制器返回的对象应作为响应的主体部分,而不是作为视图名称解析的一部分。它将方法的返回值直接转换为响应的内容,通常用于返回 JSON、XML 或其他格式的数据。Controller方法返回值默认表示要跳转的页面,没有对应的页面就会报错。如果不想跳转页面而是响应数据,那么就需要在方法上使用@ResponseBody注解。如果控制器类上已经使用了 @RestController 注解,则该类中的所有方法都将默认使用 @ResponseBody 注解,无需再单独添加 @ResponseBody 注解。
  • 使用 @ResponseBody 注解的方法可以返回各种类型的数据,包括:
    • Java 对象:Spring MVC会自动将其转换为 JSON、XML 或其他格式的数据,并设置正确的 Content-Type 头部。
    • 字符串:直接将字符串作为响应的内容返回。
    • 字节数组:将字节数组作为响应的内容返回。
@RequestBody
  • 可以作为json参数接受一个对象:

    @PostMapping("/user")
    @ResponseBody
    public User createUser(@RequestBody User user) {
    	// 处理创建用户的逻辑
    	return userService.createUser(user);
    }
    
配置类@Configuration
  • 标识配置类:使用 @Configuration 注解将一个类标识为配置类,该类通常用于定义 Spring 应用程序的配置信息。
  • 声明 Bean:在配置类中使用 @Bean 注解声明一个方法,该方法将返回一个对象实例,Spring 容器会将其注册为一个 Bean,并根据需要进行依赖注入。
  • 组件扫描:使用 @ComponentScan 注解指示 Spring 容器在指定的包中扫描组件,自动将其识别为 Bean。
  • 导入其他配置类:使用 @Import 注解导入其他配置类,实现配置的模块化和复用。
请求参数名称关联@RequestParam(“name”)
  • 请求参数名与形参名不同时,使用@RequestParam注解关联请求参数名称与形参名称之间的关系

    参数:

    • required:是否为必传参数
    • defaultValue:参数默认值
    @RequestMapping("/update")
    @ResponseBody
    public String update(@RequestParam("name") String
    userName , int age){ 
        return "{'module':'common param different name'}";
    }
    
POJO类型参数自动封装
//POJO参数:请求参数与形参对象中的属性对应即可完成参数传递
@RequestMapping("/pojoParam")
@ResponseBody
public String pojoParam(User user){
    System.out.println("pojo参数传递 user ==> "+user);
    return "{'module':'pojo param'}";
}
  • 请求参数key的名称要和POJO中属性的名称一致,否则无法封装。
  • 嵌套POJO参数:请求参数名与形参对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数,即属性名 . 引用属性名进行传参。
@RequestBody与@RequestParam区别
  • @RequestParam用于接收url地址传参,表单传参【application/x-www-formurlencoded】
  • @RequestBody用于接收json数据【application/json】
  • 后期开发中,发送json格式数据为主,@RequestBody应用较广如果发送非json格式数据,选用@RequestParam接收请求参数
日期类型@DateTimeFormat

接收形参时,根据不同的日期格式设置不同的接收方式 ,如下:

//日期参数 http://localhost:80/dataParam?date=2088/08/08&date1=2088-08-
18&date2=2088/08/28 8:08:08
//使用@DateTimeFormat注解设置日期类型数据格式,默认格式yyyy/MM/dd
@RequestMapping("/dataParam")
@ResponseBody
public String dataParam(Date date,@DateTimeFormat(pattern="yyyy-MM-dd") Date date1, @DateTimeFormat(pattern="yyyy/MM/dd HH:mm:ss") Date date2){
    System.out.println("参数传递 date ==> "+date);
    System.out.println("参数传递 date1(yyyy-MM-dd) ==> "+date1);
    System.out.println("参数传递 date2(yyyy/MM/dd HH:mm:ss) ==> "+date2);
    return "{'module':'data param'}";
}
响应页面
@Controller
public class UserController {
//响应页面/跳转页面
//返回值为String类型,设置返回值为页面名称,即可实现页面跳转
@RequestMapping("/toJumpPage")
public String toJumpPage(){
        System.out.println("跳转页面");
        return "page.jsp";
    }
}
REST 风格
REST(Representational State Transfer),表现形式状态转换
  • 传统风格资源描述形式
    • http://localhost/user/getById?id=1
    • http://localhost/user/saveUser
  • REST风格描述形式
    • http://localhost/user/1
    • http://localhost/user
RESTful介绍
  • 按照REST风格访问资源时使用行为-动作区分对资源进行了何种操作
    • http://localhost/users 查询全部用户信息 (查询)
    • http://localhost/users/1 查询指定用户信息(查询)
    • http://localhost/users 添加用户信息(新增/保存)
    • http://localhost/users 修改用户信息(修改/更新)
    • http://localhost/users/1 删除用户信息(删除)
@Controller
public class UserController {
//设置当前请求方法为POST,表示REST风格中的添加操作
    @RequestMapping(value = "/users",method = RequestMethod.POST)
    @ResponseBody
    public String save(RequestBody User user){
        System.out.println("user save...");
        return "{'module':'user save'}";
    }
//设置当前请求方法为DELETE,表示REST风格中的删除操作
//@PathVariable注解用于设置路径变量(路径参数),要求路径上设置对应的占位符,并且占位符名称与方法形参名称相同
    @RequestMapping(value = "/users/{id}",method = RequestMethod.DELETE)
    @ResponseBody
    public String delete(@PathVariable Integer id){
        System.out.println("user delete..." + id);
        return "{'module':'user delete'}";
    }
//设置当前请求方法为PUT,表示REST风格中的修改操作
    @RequestMapping(value = "/users",method = RequestMethod.PUT)
    @ResponseBody
    public String update(@RequestBody User user){
        System.out.println("user update..."+user);
        return "{'module':'user update'}";
    }
//设置当前请求方法为GET,表示REST风格中的查询操作
//@PathVariable注解用于设置路径变量(路径参数),要求路径上设置对应的占位符,并且占位符名称与方法形参名称相同
    @RequestMapping(value = "/users/{id}" ,method = RequestMethod.GET)
    @ResponseBody
    public String getById(@PathVariable Integer id){
        System.out.println("user getById..."+id);
        return "{'module':'user getById'}";
    }
//设置当前请求方法为GET,表示REST风格中的查询操作
    @RequestMapping(value = "/users",method = RequestMethod.GET)
    @ResponseBody
    public String getAll(){
        System.out.println("user getAll...");
        return "{'module':'user getAll'}";
    }
}
@PathVariable介绍

绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应,使用 @PathVariable 注解时,需要在注解中指定路径变量的名称,并将其作为方法参数进行声明。当请求被映射到带有 @PathVariable 注解的处理方法时,Spring MVC 会自动将路径变量的值绑定到相应的方法参数上。

@RestController
@RequestMapping("/users")
public class UserController {

    @GetMapping("/{id}")
    public User getUserById(@PathVariable("id") Long id) {
        // 根据用户ID查询用户信息
        return userService.getUserById(id);
    }
    // 其他方法...
}

需要注意的是,@PathVariable 注解默认是必需的,即请求中必须包含路径变量的值。如果路径变量的值在请求中不存在,将会引发异常。如果希望路径变量是可选的,可以使用 required 属性进行配置。

@GetMapping("/{id}")
public User getUserById(@PathVariable(value = "id", required = false) Long id) {
    // ...
}
@RequestBody、@RequestParam、@PathVariable区别和应用
  • 区别
    • @RequestParam用于接收url地址传参或表单传参,(@RequestParam("name") String userName , int age),(@RequestParam List<String> likes)
    • @RequestBody用于接收json数据,(@RequestBody User user)
    • @PathVariable用于接收路径参数,使用{参数名称}描述路径参数
  • 应用
    • 后期开发中,发送请求参数超过1个时,以json格式为主,@RequestBody应用较广如果发送非json格式数据,选用@RequestParam接收请求参数采用RESTful进行开发,当参数数量较少时,例如1个,可以采用@PathVariable接收请求路径变量,通常用于传递id值。
@RestController注解

设置当前控制器类为RESTful风格,等同于@Controller与@ResponseBody两个注解组合功能文章来源地址https://www.toymoban.com/news/detail-498220.html

到了这里,关于SpringMVC常用注解笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringMVC 中的常用注解和用法

    观前提示:本篇博客演示使用的 IDEA 版本为2021.3.3版本,使用的是Java8(又名jdk1.8) 电脑使用的操作系统版本为 Windows 10 目录  前言 Spring Boot Spring MVC 1. MVC 1.1 MVC 和 Spring MVC 之间的关系 2. 创建 Spring MVC 项目 创建一个 SpringMVC 项目 1. new project 2. 选择 SpringBoot 项目, 选择合适的 jdk 版本

    2024年02月09日
    浏览(45)
  • JavaEE——SpringMVC中的常用注解

    目录 1、@RestController (1)、@Controller (2)、@ResponseBody 2、RequestMappping (1)、定义 (2)、使用 【1】、修饰方法 【2】、修饰类 【3】、指定方法类型 【4】、简化版指定方法 (3)、获取参数 【1】、传递单个/多个参数 【2】、传递对象 3、@RequestParam 4、@RequestBody 5、@PathVar

    2024年02月15日
    浏览(72)
  • 【JavaEE进阶】SpringMVC中的常用注解和用法

    目录 学习Spring MVC 建立连接 @RequestMapping 注解介绍 @RequestMapping 使用 传参介绍 传递单个参数 传递多个参数 传递对象 后端参数重命名(后端参数映射)@RequestParam 非必传参数设置 传递数组 传递集合 传递JSON数据 获取URL中参数@PathVariable 上传文件@RequestPart 获取Cookie/Session 响应

    2024年04月14日
    浏览(86)
  • SpringMVC进阶:常用注解、参数传递和请求响应以及页面跳转

    目录 一、常用注解 1.1.@RequestMapping 1.2.@RequestParam 1.3.@ModelAttribute 1.4.@SessionAttributes 1.5.@RequestBody 1.6.@RequestHeader 1.7.@PathVariable 1.8.@CookieValue 二、参数传递 2.1.基础类型+String 2.2.复杂类型 2.3.@RequestParam 2.4.@PathVariable 2.5.@RequestBody 2.6.@RequestHeader 三、返回值 3.1.void 3.2.String 3.3.String+Mod

    2024年02月09日
    浏览(42)
  • SpringMVC的常用注解,参数传递以及页面跳转的使用

    目录 slf4j 常用注解 @RequestMapping @RequestParam @RequestBody @PathVariable 参数传递  首先在pom.xml配置文件中导入SLF4J的依赖 基础类型+String   复杂类型 @RequestParam @PathVariable @RequestBody  增删改查  返回值 void返回值  String返回值 model+String   页面跳转 --转发和重定向 SLF4J,简单日志门面

    2024年02月09日
    浏览(43)
  • 注解开发SpringMVC

               

    2024年02月16日
    浏览(40)
  • “深入理解SpringMVC的注解驱动开发“

    在现代的Web开发中,SpringMVC已经成为了一个非常流行和强大的框架。它提供了许多注解来简化开发过程,使得我们能够更加专注于业务逻辑的实现。本文将深入探讨SpringMVC的注解驱动开发,重点关注常用注解、参数传递、返回值和页面跳转等方面。 1.1 @Controller @Controller注解用

    2024年02月09日
    浏览(38)
  • Springboot开发常用注解

    @RestController注解其实就是将 return 中的内容以 JSON字符串的形式返回客户端 @controller的详解 @Data详解 @RequestMapping @Builder @RequestBody @slf4j execution http协议及servlet JoinPoint

    2024年02月13日
    浏览(34)
  • SpringBoot常用的简化开发注解

    在Spring Boot框架中,有许多常用的注解可用于开发项目。下面是其中一些常见的注解及其功能和属性的说明: @RestController 是 Spring Framework 中的一个注解,用于标识一个类是 RESTful 服务的控制器。它结合了 @Controller 和 @ResponseBody 注解的功能,简化了创建 RESTful 服务的代码。

    2024年02月10日
    浏览(32)
  • Spring注解驱动开发之常用注解案例_告别在XML中配置Bean

    注解驱动开发就是不再使用Spring的bean.xml文件,改为纯使用注解的方式开发 @Configuration 此注解为配置类注解,相当于spring.xml文件,即配置类==配置文件 @Bean 给容器中注册一个Bean;类型为返回值的类型,id默认是用方法名作为id 示例 Person类(后续注解配置类中都会以此类举例),

    2024年01月21日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包