当前位置: 首页 > news >正文

常见使用总结篇(一)

@Autowired和@Resource注解的区别

  1. @Autowired注解是Spring提供的,@Resource注解是J2EE本身提供
  2. @Autowird注解默认通过byType方式注入(没有匹配会通过byName方式),而@Resource注解默认通过byName方式注入(没有匹配会通过byType方式)
  3. @Autowired注解注入的对象需要在IOC容器中存在,否则需要加上属性required=false,表示忽略当前要注入的bean,如果有直接注入,没有跳过,不会报错
  4. @Autowired注解设置参数只有required,@Resource注解有更多(如:name,type...7个参数)
  5. @Autowired注解支持属性注入,构造方法注入,setter注入,@Resource注解不支持构造方法注入

byName就是变量名去匹配bean的id属性,而byType则是变量类型去匹配bean的class属性

@PathVariable

  • 类型 形参注解

  • 位置 SpringMVC控制器方法形参定义前面

  • 作用 绑定路径参数与处理器方法形参间的关系,要求路径参数名与形参名一一对应

  • 它也支持正则表达式,这就决定了它超强的属性,它能在路径模板中使用占位符,可以设定特定的前缀匹配和后缀匹配,自定义格式

@RequestBody @RequestParam @PathVariable区别

@RequestParam 默认使用 接收String类型数据

  • RequestParam 用于接收URL地址传参或表单传参

  • RequestBody 用于接收JSON数据

  • PathVariable 用于接收路径参数,使用 {参数名} 描述路径参数

应用

    • 后期开发中,发送请求参数超过1个时,以JSON格式为主,所以@RequestBody应用较广泛

    • 如果发送非JSON格式数据,选用 @RequestParam 接收请求参数

    • 当参数数量只有一个时,或为数字时,可以采用 @PathVariable接收请求路径变量,通常传递id值

@RequestParam 主要用途就是将请求的参数绑定到方法的形参上,有一个required属性,默认情况下是true,就是必须要传参数,如果想该形参可传可不传参数的话,就将属性值设置为false即可

@RequestParam注解来接收数据,而这个注解只支持表单类型的数据的解析,不支持json数据格式。 那么当前端传过来的数据为json格式的,就会解析失败。 解决办法: 1、最简单的解决办法就是将@RequestParam注解改为@RequestBody注解,因为它支持json数据格式的解析 2、还可以通过Postman来用param传参解决

@RequestParam接收参数的几种前后端对应情况: 一,前端用vue,get请求,参数拼接在url中: 后端用@RequestParam或者request.getParameter(“xxx”)都可以获取所需参数。 二,前端vue,post请求,参数在请求体中,不拼接在url上: 后端无法获取参数,并且报错。

如果想模仿 @RequestParam (required = false) 的表现,我们可以使用@NotNull注解在对应的字段上即可。 在更多的情况下,我们一般使用@NotBlack多于@NotNull,因为@NotBlank考虑了空字符串的情况

params 与 data

在使用axios时,注意到配置选项中包含params和data两者,以为他们是相同的,实则不然。   因为params是添加到url的请求字符串中的,用于get请求。服务器并不会读取http body里面的数据,这样我们传递的就是Params里的请求的参数了。(get请求下data不能用)   而data是添加到请求体(body)中的,服务器读取http body里面的数据那就需要用POST请求了,POST请求的参数就存放在body;(但是post请求下parms可以在特定情况下使用)

1、get请求参数是带在url上的,必须使用params,这个是肯定的,但是post的请求就不一定了 2、 post请求既可以使用params,也可以使用data 区别是:data是放在body里的,在url中看不见参数,但是使用params的话,说明参数在url里面是能够看见的 可以根据不同的情况使用参数传参

实在区分不开,就简单一句话,你能看见的参数,传参就用params,看不见的参数,就用data

Axios post 传参的params 与data 的两种形式(根据java后台接口来选择) 前言 params是添加到url的请求字符串中的,一般用于get请求。 data是添加到请求体(body)中的, 一般用于post请求。 使用场景 一般,情况下都是使用data的传参方式,但有时会发现需要使用params的方式,后台才能获取到数据,这与后台的接口有关,我们前端不能控制。如Java接口

若使用Map接收参数,必须使用 @RequestParam 修饰。但是如果想传list类型的数据,需要使用单独的方法处理(参考链接)。 若使用data传递参数,必须使用一个实体类接收参数,而且需要添加注解 @RequestBody 进行修饰

http://www.lryc.cn/news/208401.html

相关文章:

  • 【软考系统架构设计师】2023年系统架构师冲刺模拟习题之《数据库系统》
  • 北邮22级信通院数电:Verilog-FPGA(7)第七周实验(1):带使能端的38译码器全加器(关注我的uu们加群咯~)
  • SIT3491ISO具有隔离功能,256 节点,全双工 RS422/RS485 芯片
  • 在windows服务器上部署一个单机项目以及前后端分离项目
  • 使用jdbc技术,在数据库中存储大数据对象(使用字节IO流读取图片等给blob等二进制类型数据赋值)
  • 统计学习方法 支持向量机(下)
  • 【python】如何注释
  • C++——C++入门(二)
  • 容联七陌百度营销通BCP解决方案,让营销更精准
  • Transformer模型 | 用于目标检测的视觉Transformers训练策略
  • 贪心区间类题目
  • npm改变npm缓存路径和改变环境变量
  • string到QString出现中文乱码
  • 【Linux精讲系列】——yum软件包管理
  • 浅谈一下Vue3的TreeShaking特性
  • 【牛牛送书 | 第二期】《ChatGPT 驱动软件开发:AI 在软件研发全流程中的革新与实践》
  • Qt基础之三十九:Qt Creator调试技巧
  • Docker Nginx安装使用以及踩坑点总结
  • 单位建数字档案室的意义和作用
  • JavaWeb——关于servlet种mapping地址映射的一些问题
  • NTRU 加密方案
  • 第一章前端开发ES6基础
  • 【算法练习Day30】无重叠区间 划分字母区间合并区间
  • Linux部署Redis哨兵集群 一主两从三哨兵(这里使用Redis6,其它版本类似)
  • VR结合|山海鲸虚拟展厅解决方案
  • 记一次企业微信的(CorpID)和密钥(Secret)泄漏的利用案例
  • 使用Selenium和Java编写爬虫程序
  • 【Java】PAT Basic Level 1023 组个最小数
  • Redis中设置Hash数据类型的过期时间
  • 你真的了解CPU和GPU?