Spring Boot中常用的参数传递注解示例详解

 更新时间:2023年11月21日 14:55:47   作者:明月一壶酒  
这篇文章主要介绍了Spring Boot中常用的参数传递注解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Spring Boot中常用的参数传递注解

@RequestParam:用于将请求参数绑定到控制器处理方法的参数上,适用于GET请求。@PathVariable:用于获取请求URL中的动态参数,适用于RESTful风格的URL。@RequestBody:用于将请求体中的JSON字符串绑定到控制器处理方法的参数上。@RequestHeader:用于将请求头中的信息绑定到控制器处理方法的参数上。@ModelAttribute:用于将请求参数绑定到一个对象上,适用于POST请求。@RequestAttribute:用于将请求属性绑定到控制器处理方法的参数上。

当你使用了@Param注解来声明参数时,如果使用 #{} 或 ${} 的方式都可以。如果不使用@Param注解来声明参数时,必须使用 #{}方式。如果使用 ${} 的方式,会报错。

示例代码如下:

// 使用@RequestParam注解传参
@GetMapping("/user")
public String getUser(@RequestParam("id") Long id) {
    // 处理逻辑
}
// 使用@PathVariable注解传参
@GetMapping("/user/{id}")
public String getUser(@PathVariable("id") Long id) {
    // 处理逻辑
}
// 使用@RequestBody注解传参
@PostMapping("/user")
public String addUser(@RequestBody User user) {
    // 处理逻辑
}
// 使用@RequestHeader注解传参
@GetMapping("/user")
public String getUser(@RequestHeader("User-Agent") String userAgent) {
    // 处理逻辑
}
// 使用@ModelAttribute注解传参
@PostMapping("/user")
public String addUser(@ModelAttribute User user) {
    // 处理逻辑
}
// 使用@RequestAttribute注解传参
@GetMapping("/user")
public String getUser(@RequestAttribute("id") Long id) {
    // 处理逻辑
}

springboot中的参数传递

1、前端传递到后端

1-1、js

function add(){
    var obj = {};
    obj.parame_empname = $("#EMPNAME").val();
    if (obj.parame_empname == "") {
        alert("姓名不能为空");
        return;
    }
    $.ajax({
        type: "post", //定义ajax请求类型
        url: /add,
        data: JSON.stringify(obj),
        contentType: "application/json;charset=utf-8", //请求头
        dataType: "text", //返回数据类型
        success: function(result) {
            alert(result);
        }
    })
}

1-2、controller

@RequestMapping(value = "/add")
@ResponseBody
public String addCommit(@RequestBody JSONObject req) {
    String info = "Success:提交成功";
    String empname = req.getString("parame_empname");
    service.add(empname);// 插入数据库
    return info;
}

2、后端传递到mapper(sql)

2-1、controller

service.add(empname);// 插入数据库

2-2、service

public void addcommit( String username) {
        dao.addcommit(username);
    }

2-3、dao

public void addcommit(@Param("username") String username);

2-4、mapper

<insert id="add" parameterType="map">
        INSERT INTO TABLE
  (USERNAME)
        VALUES
  (#{username})
</insert>

------------------------分割线--------------------------

还有一种动态sql方式

即把#{}改成${}

这样传到sql的参数即使是字符串也不会带引号。

这样可以实现动态拼接sql。

但这样做有一个弊端:可能会被恶意利用,进行sql注入。

到此这篇关于Spring Boot中常用的参数传递注解的文章就介绍到这了,更多相关Spring Boot参数传递注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解SpringBoot缓存的实例代码(EhCache 2.x 篇)

    详解SpringBoot缓存的实例代码(EhCache 2.x 篇)

    这篇文章主要介绍了详解SpringBoot缓存的实例代码(EhCache 2.x 篇),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 详解MyBatis中column属性的总结

    详解MyBatis中column属性的总结

    在MyBatis的映射中有column这么一个属性,我一直以为它映射的是数据库表中的列名,但经过学习发现他似乎映射的是SQL语句中的列名,或者说是查询结果所得到的表的列名,这篇文章主要介绍了MyBatis中column属性的总结,需要的朋友可以参考下
    2022-09-09
  • Java 给图片和动图添加水印的方法

    Java 给图片和动图添加水印的方法

    本篇文章主要介绍了Java 给图片和动图添加水印的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 解决SpringBoot下Redis序列化乱码的问题

    解决SpringBoot下Redis序列化乱码的问题

    这篇文章主要介绍了解决SpringBoot下Redis序列化乱码的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • 如何在Mac上安装并配置JDK环境变量详细步骤

    如何在Mac上安装并配置JDK环境变量详细步骤

    这篇文章主要介绍了如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerShell为默认终端,需要的朋友可以参考下
    2025-04-04
  • 详解JAVA设计模式之代理模式

    详解JAVA设计模式之代理模式

    这篇文章主要介绍了JAVA设计模式之代理模式的的相关资料,文中代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • java使用socket实现一个多线程web服务器的方法

    java使用socket实现一个多线程web服务器的方法

    今天小编就为大家分享一篇java使用socket实现一个多线程web服务器的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • java中ThreadLocalRandom的使用详解

    java中ThreadLocalRandom的使用详解

    这篇文章主要介绍了java中ThreadLocalRandom的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Java BigDecimal类用法详解

    Java BigDecimal类用法详解

    BigDecimal 由任意精度的整数非标度值 和32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负scale 次幂。
    2016-06-06
  • springboot整合logback实现日志管理操作

    springboot整合logback实现日志管理操作

    本章节是记录logback在springboot项目中的简单使用,本文将会演示如何通过logback将日志记录到日志文件或输出到控制台等管理操作,感兴趣的朋友跟随小编一起看看吧
    2024-02-02

最新评论