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

Spring 容器管理 Bean

Bean是什么

Bean 是指 Java 中的可重用软件组件,容器会根据提供的元数据来创建和管理这些 Bean,也包括它们之间的依赖关系。Spring 容器对 Bean 并没有太多的要求,无须实现特定接口或依赖特定库,只要是最普通的 Java 对象即可,这类对象也被称为 POJO(Plain Old Java Object)。

JavaBeans 是 Java 中一种特殊的类,可以将多个对象封装到一个对象(Bean)中。特点是可序列化,提供无参构造器,提供 Getter 方法和 Setter 方法访问对象的属性。 一个 Bean 的定义中,会包含如下部分,

  • Bean 的名称,一般是 Bean 的 id,也可以为 Bean 指定别名(alias);
  • Bean 的具体类信息,这是一个全限定类名;
  • Bean 的作用域,是单例(singleton)还是原型(prototype);
  • 依赖注入相关信息,构造方法参数、属性以及自动织入(autowire)方式;
  • 创建销毁相关信息,懒加载模式、初始化回调方法与销毁回调方法。 

Bean 的依赖关系

依赖注入,Spring 容器管理依赖就是管理 Bean 之间的依赖。

两种基本注入方式

 1. 基于构造方法的注入,是通过构造方法来注入依赖。对应的 XML 配置文件需要使用 <constructor-arg/> 传入构造方法所需的内容。<constructor-arg/> 的可配置属性如下,

属性

作用

value

要传给构造方法参数的值

ref

要传给构造方法参数的 Bean ID

type

构造方法参数对应的类型

index

构造方法参数对应的位置,从 0 开始计算

name

构造方法参数对应的名称

2. 基于 Setter 方法的注入,是通过 Bean 的 Setter 方法来注入依赖。

用代码实现两种注入方式,如下,

public class Hello {   private String name;
​   public Hello(String name) {       this.name = name;   }
​   public String hello() {       return "Hello World! by " + name;   }
}// 通过构造方法配置 Bean
// 使用 <constructor-arg/> 传入构造方法所需的内容
// <constructor-arg> 中有不少属性可以配置
<?xml version="1.0" encoding="UTF-8"?>
​
<beans xmlns="http://www.springframework.org/schema/beans"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://www.springframework.org/schema/beans       https://www.springframework.org/schema/beans/spring-beans.xsd">
​   <bean id="hello" class="learning.spring.helloworld.Hello">       <constructor-arg value="Spring"/>   </bean>
​
</beans>// 通过 Setter 方法配置 Bean
// <property/> 中的 value 属性是直接注入的值,用 ref 属性则可注入其他 Bean
<bean id="..." class="...">   <property name="xxx">       <!-- 直接定义一个内部的Bean -->       <bean class="..."/>   </property>
​   <property name="yyy">       <!-- 定义依赖的Bean -->       <ref bean="..."/>   </property>
​   <property name="zzz">       <!-- 定义一个列表 -->       <list>           <value>aaa</value>           <value>bbb</value>       </list>   </property>
</bean>

自动织入(autowire)

手动配置依赖在 Bean 少时还能接受,当 Bean 的数量变多后,这种配置就会变得非常繁琐。让 Spring 容器替我们自动进行依赖注入,这种机制就叫自动织入。自动织入有几种模式,如下,

名称

说明

no

不进行自动织入

byName

根据属性名查找对应的 Bean 进行自动织入

byType

根据属性类型查找对应的 Bean 进行自动织入

constructor

同 byType,但用于构造方法注入

在 <bean/> 中可以通过 autowire 属性来设置使用何种自动织入方式,也可以在 <beans/> 中设置 default-autowire 属性指定默认的自动织入方式,Spring Framework 2.0也可以直接使用@Autowired注解。

自动织入时需要注意以下事项,

  • 开启自动织入后,仍可以手动设置依赖,手动设置的依赖优先级高于自动织入;
  • 自动织入无法注入基本类型和字符串;
  • 对于集合类型的属性,自动织入会把上下文里找到的 Bean 都放进去,但如果属性不是集合类型,有多个候选 Bean 就会有问题。

为了避免第三点问题,可以将 <bean/> 的 autowire-candidate 属性设置为 false,也可以在期望的候选 Bean 的 <bean/> 中将 primary 设置为 true,这表明在多个候选 Bean 中该 Bean 是主要的(如果使用基于 Java 类的配置方式,我们可以通过选择 @Primary 注解实现一样的功能)。

指定 Bean 的初始化顺序

Spring 容器会根据依赖情况自动调整 Bean 的初始化顺序。有时 Bean 之间的依赖并不明显,容器可能无法按预期初始化,这时可以自己指定 Bean 的依赖顺序。<bean/> 的 depends-on 属性可以指定当前 Bean 还要依赖哪些 Bean(基于 Java 类的配置方式支持 @DependsOn 注解实现一样的功能)。

Bean 的三种配置方式

Spring 容器的元数据配置本质上就是配置 Bean(AOP 和事务的配置背后也是配置各种 Bean),Bean的配置姿势就显得比较重要了。

Spring Framework 提供了不同风格的配置方式,这几种方式没有明确的优劣之分,很多时候也可以混合使用。

1. 早期仅支持 XML 配置方式;

2. Spring Framework 2.0 引入了基于注解的配置方式;

3. Spring Framework 3.0 又增加了基于 Java 类的配置方式。

基于 XML 文件的配置

Spring Framework 提供了 <beans/> Schema 配置 Bean,需要配合使用 ApplicationContext 类把 Bean 配置注入到容器中。

基于注解的配置

Spring Framework 2.0 引入了 @Required 注解,Spring Framework 2.5 又引入了 @Autowi

相关文章:

Spring 容器管理 Bean

Bean是什么 Bean 是指 Java 中的可重用软件组件,容器会根据提供的元数据来创建和管理这些 Bean,也包括它们之间的依赖关系。Spring 容器对 Bean 并没有太多的要求,无须实现特定接口或依赖特定库,只要是最普通的 Java 对象即可,这类对象也被称为 POJO(Plain Old Java Obj…...

Spring 容器 详解

Spring 容器详解 Spring 容器 是 Spring 框架的核心组件之一&#xff0c;它负责创建和管理应用程序中的 Bean&#xff08;对象&#xff09;以及处理它们之间的依赖关系。容器通过控制反转&#xff08;IoC&#xff09;和依赖注入&#xff08;DI&#xff09;实现对象的生命周期管…...

ubuntu环境下安装electron环境,并快速打包

1.配置镜像源 关闭防火墙&#xff0c;命令&#xff1a;sudo ufw disable 1.1配置国内镜像源&#xff1a; vim /etc/apt/source.list deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiversedeb-src https://mirrors.aliyun.com/ubuntu/ jammy main…...

Yeeco成长型一体化数智赋能平台:科技矩阵重塑企业数字生态

随着科技的飞速发展&#xff0c;我们正在步入一个被称为“数智化时代”的新时代。在这个时代中&#xff0c;数据处理和分析的能力被提升到一个前所未有的高度&#xff0c;而这种变化背后的重要推动力量就是各种新兴的技术趋势。 为了在激烈的市场竞争中脱颖而出&#xff0c;Yee…...

DP、CP、Mn是什么?有什么关系?双径节齿轮又是什么?

有一些刚刚接触齿轮的小伙伴们&#xff0c;经常听到和齿轮相关的是Mn这个代号&#xff0c;有时候拿到图纸会碰到DP和CP的图纸&#xff0c;今天就简单数一数他们三个的关系&#xff1a; 径节DP 齿轮的节距定义为两个相邻齿轮齿上两个相同点之间的距离。在理想情况下&#xff0c…...

Python 中的生成器是什么?

生成器&#xff08;Generator&#xff09;是Python中一种特殊的迭代器&#xff0c;它允许你逐步生成一系列值&#xff0c;而不是一次性创建整个列表或集合。 这在处理大型数据集或流式数据时特别有用&#xff0c;因为你可以逐个处理元素&#xff0c;而不需要将所有元素加载到内…...

如何参加华为欧拉考试?

华为欧拉考试主要针对的是华为欧拉&#xff08;EulerOS/openEuler&#xff09;操作系统的认证考试&#xff0c;这一认证体系旨在培养和认证具备基于欧拉操作系统进行企业级应用运行基础环境搭建、管理和调测能力的工程师以及云计算架构师。以下是对华为欧拉考试的详细介绍&…...

基于STM32设计的智能家居控制系统(华为云IOT)_275

文章目录 一、前言1.1 项目介绍【1】项目开发背景【2】设计实现的功能【3】项目硬件模块组成【4】设计意义【5】国内外研究现状【6】摘要1.2 设计思路1.3 系统功能总结1.4 开发工具的选择【1】设备端开发【2】上位机开发1.5 参考文献1.6 系统框架图1.7 系统原理图1.8 实物图1.9…...

2024年第七届传智杯程序设计挑战赛第一场初赛题解

文章目录 2024年第七届传智杯程序设计挑战赛初赛第一场A-吃糖果(B组、C组)B-汤姆和杰瑞(A组、C组)C-游游的重组偶数(A组、B组、C组)D-开心还是难过(B组、C组)E-小欧的平面连线(A组、B组、C组)F-小红的四子棋(A组、B组、C组)G-小红的数组操作(A组、B组)H-游游的不相邻取数(A组) …...

iOS视图控制器的生命周期及各阶段的作用

iOS视图控制器&#xff08;UIViewController&#xff09;的生命周期是指从它被创建到最终被销毁的过程中所经历的一系列阶段。每个阶段都有其特定的作用和执行时机&#xff0c;这些阶段和作用对于开发高效、稳定的iOS应用至关重要。以下是iOS视图控制器的生命周期及其各个阶段的…...

stm32上电不能启动什么原因

STM32上电不能启动可能由多种原因造成,以下是一些常见的原因及解决方法: 一、软件原因 程序错误: 程序可能存在死循环、堆栈溢出、指针指向不允许的内存空间等问题。 解决方法:使用调试工具进行调试,检查程序流程,定位并修复错误。 时钟问题: 时钟切换失败或外部时钟源…...

【后端面试总结】golang channel深入理解

在Go语言中&#xff0c;Channel是一种用于在goroutine之间进行通信和同步的重要机制。它提供了一种安全、类型安全的方式来传递数据&#xff0c;使得并发编程变得更加直观和简单。本文将详细介绍Golang中Channel的基本概念、创建与关闭、发送与接收操作&#xff0c;以及相关的使…...

lobeChat安装

一、安装Node.js version > v18.17.0 二、下载 cd F:\AITOOLS\LobeChat git clone https://github.com/lobehub/lobe-chat.git &#xff08;下载要是失败就手动下&#xff1a;https://codeload.github.com/lobehub/lobe-chat/zip/refs/heads/main&#xff09; npm install …...

OpenCV 简介与安装方法

大家好啊&#xff0c;我是董董灿。 如果你在做计算机视觉相关的工作&#xff0c;肯定少不了使用 OpenCV 库。 在《计算机视觉专栏》的传统计算机视觉部分&#xff0c;我曾经使用 OpenCV 进行了很多图像的处理&#xff0c;比如边缘检测。 刚好最近在整理一份文稿&#xff0c;…...

力扣刷题TOP101:14.BM16 删除有序链表中重复的元素-II

目录&#xff1a; 目的 思路 复杂度 记忆秘诀 python代码 目的 1→1→2→3→3 删除重复后变成2。 思路 这个任务是删除链表里重复的节点包含本身。可以看成是一个抽奖活动的系统升级。某人通过多种方式报名&#xff08;节点不同&#xff09;&#xff0c;后台数据检测到这些…...

Hadoop生态圈框架部署 伪集群版(四)- Zookeeper单机部署

文章目录 前言一、Zookeeper单机部署&#xff08;手动部署&#xff09;1. 下载Zookeeper安装包到Linux2. 解压zookeeper安装包3. 配置zookeeper配置文件4. 配置Zookeeper系统环境变量5. 启动Zookeeper6. 停止Zookeeper在这里插入图片描述 注意 前言 本文将详细介绍Zookeeper的…...

【Linux】文件

声明&#xff1a;以下内容均学习自《Linux就该这么学》一书 1、文件权限及归属 对目录文件来说&#xff0c;“可读”表示能够读取目录内的文件列表&#xff1b;“可写”表示能够在目录内新增、删除、重命名文件&#xff1b;“可执行”表示能够进入该目录。 文件类型区分 -普通…...

仿真键盘输入遇到Edge环境不识别 回车符如何处理

这个问题我也是最近才遇到&#xff0c;可能现在大家都喜欢用新架构&#xff0c;基于网页来写应用管理软件。 当遇到Edge环境下&#xff0c;文本框不识别回车符如何处理&#xff0c;根据笔者经验可通过配置Edge 基于键盘管理设置来解决这个事情。如图 即在Edge浏览器环境下&…...

Python 列表操作详解

Python 列表操作详解 在 Python 中&#xff0c;列表&#xff08;list&#xff09;是一种用于存储有序集合的数据结构。列表可以包含各种类型的数据&#xff0c;如整数、浮点数、字符串等&#xff0c;甚至可以包含其他列表&#xff08;这称为嵌套列表&#xff09;。 示例列表 …...

Git操作学习2

1.使用git rm删除文件 查看文件夹的内容 ls -lr 删除文件rm 文件名 但是此时只删了工作区的文件&#xff0c;仓库还没有删 可以再使用git add更新提交给仓库 也可以直接通过git rm 删除仓库里面的文件 工作区也删除了 暂存区也删除了 最后记得提交 否则删除的文件在版本库还…...

Spring Event 监听与异步设置:深入解析与应用场景

在开发中&#xff0c;事件驱动编程&#xff08;Event-Driven Programming&#xff09;是一种常见的编程模式&#xff0c;Spring 提供了强大的事件机制&#xff0c;使得我们可以通过 EventListener 或 ApplicationListener 来监听和处理应用中的各种事件。这种机制不仅使得应用架…...

百度木木浆测试

本程序测试识别图片的文字 import cv2 from paddleocr import PaddleOCR, draw_ocr from matplotlib import pyplot as plt # 加载PaddleOCR模型&#xff0c;这里你可以根据需要选择语言和模型路径 ocr PaddleOCR(use_gpuFalse, langch) # 假设我们识别中文字符&#xff0c…...

视频监控集中管理方案设计:Liveweb视频汇聚方案技术特点与应用

随着科技的发展&#xff0c;视频监控平台在各个领域的应用越来越广泛。然而&#xff0c;当前的视频监控平台仍存在一些问题&#xff0c;如视频质量不高、监控范围有限、智能化程度不够等。这些问题不仅影响了监控效果&#xff0c;也制约了视频监控平台的发展。 为了解决这些问…...

剑指offer(专项突破)---字符串

总目录&#xff1a;剑指offer&#xff08;专项突破&#xff09;---目录-CSDN博客 1.字符串的基本知识 C语言中&#xff1a; 函数名功能描述strcpy(s1, s2)将字符串s2复制到字符串s1中&#xff0c;包括结束符\0&#xff0c;要求s1有足够空间容纳s2的内容。strncpy(s1, s2, n)…...

Zygote启动流程(AndroidV)

一&#xff1a;背景 众所周知&#xff0c;Android应用及system_server基本都是由zygote fork出来的&#xff0c;那么zygote是如何启动的、又是如何接收fork进程的请求&#xff0c;接下来一步步揭秘。 二&#xff1a;启动流程 init进程是Android系统启动时&#xff0c;启动的第一…...

Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:智行无忧停车场管理系统(前后端源码 + 数据库 sql 脚本)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 项目介绍 1.1 项目功能 2.0 用户登录功能 3.0 首页界面 4.0 车辆信息管理功能 5.0 停车位管理功能 6.0 入场登记管理功能 7.0 预约管理功能 8.0 收费规则功能 9.0…...

岩体力学的材质-力学等属性的自动划分.

#背景: 在力学求解过程中,我们往往会对目标物体进行网格划分, 那么如何做到自动完成这个过程呢? 这里使用岩体力学中的地下岩层进行举例,这里只是简单的导入了4种界面, 复杂的可以一次性导入几十种界面,都可以计算(你能分多细,这个计算方式就可以帮你分层多细) 这里我只是导…...

注解 实现原理 详解

Java 注解实现原理详解 注解&#xff08;Annotation&#xff09;是 Java 提供的一种元数据机制&#xff0c;用于为代码元素&#xff08;类、方法、字段、参数等&#xff09;添加额外的信息。注解不会直接影响程序逻辑&#xff0c;但可以通过 工具&#xff08;如编译器、运行时…...

第4章 陷入与系统调用

有三种类型的事件会让CPU停止正常执行的指令&#xff0c;强制切换到指定的代码&#xff0c;处理这些事件。一种是系统调用&#xff0c;当用户程序执行ecall指令来让内核为它做一些事。另一种是异常&#xff1a;一个指令&#xff08;用户或内核&#xff09;做了一些非法的事&…...

项目基于oshi库快速搭建一个cpu监控面板

后端&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.github.oshi</groupId><artifactId>oshi-…...

力扣C语言刷题记录 (二)移除元素

给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k&#xff0c;要通过此题&#xff0c;您需要执行以下操作&#xff1a; 更改…...

多模态大语言模型的对比

简介 文章主要对比了包括 VideoLLaMA 2 、CogVLM2-video 、MiniCPM-V等模型 目前主流的多模态视觉问答大模型&#xff0c;大部分采用视觉编码器、大语言模型、图像到文本特征的投影模块 目录 简介1. VideoLLaMA 21.1 网络结构1.2 STC connector具体的架构 2. MiniCPM-V 2.62.…...

关于最近od机考中--树

题目 树按照层级遍历获取非叶子结点&#xff0c;然后将非叶子结点以后序遍历打印。 eg 图解 只需要将1&#xff0c;3&#xff0c;4&#xff0c;2进行后序遍历打印&#xff1a;既左-右-中方式打印 最后结果如&#xff1a;2&#xff0c;3&#xff0c;4&#xff0c;1。 思路&a…...

基数排序(代码+注释)

#include <stdio.h> #include <stdlib.h>// 获取数组中的最大值 int GetMax(int* a, int n) {int max a[0];for (int i 1; i < n; i) {if (a[i] > max) {max a[i];}}return max; }// 对数组按照某个位数进行计数排序 void CountingSortForRadix(int* a, i…...

NLP 相关知识的构成

自然语言处理&#xff08;Natural Language Processing, NLP&#xff09; 自然语言处理相关知识 自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;什么是自然语言处理&#xff1f;自然语言处理的构成1. 基本术语1.1 分词&#xff08;Segmentation&#x…...

算力100问☞第20问:GPU算力的影响因素有哪些?

影响因素1&#xff1a;核心数量 GPU中的计算核心数量是决定其算力的关键因素之一。更多的计算核心意味着可以同时处理更多的数据和任务&#xff0c;从而提高整体的计算效率。例如&#xff0c;GPU里面的计算核心就好像是工厂里的工人。工人数量越多&#xff0c;同时干活儿的也就…...

C语言柔性数组

在C语言中&#xff0c;结构体定义数组指定长度0&#xff0c;sizeof时候不计入占用&#xff0c;实际分配时候占用为准&#xff01; 也许你从来没有听说过柔性数组的概念&#xff0c;但其确实存在。C99规定&#xff1a;结构中的最后一个元素允许是未知大小的数组&#xff0c;这就…...

TensorFlow与PyTorch对比:哪个更适合初学者?

小贴士: 不必着急,慢慢消化每一部分。有问题就查阅示例,实践是最好的老师!别忘了,选择合适的框架才是王道!💻🔍 本文全面对比了 TensorFlow 与 PyTorch 两大深度学习框架,详细分析了它们的特点、优势及适用场景,帮助初学者做出框架选择。内容包含框架背景、代码示例…...

Windows 11 如何配置node.js

一&#xff0c;官网下载 官网首页 下载最新LTS版本&#xff0c;比较稳定&#xff0c;如果想探索更新的版本去探索新的nodejs功能。 1. 下载完成后&#xff0c;双击运行程序&#xff0c;点击next 2. 勾选接受协议&#xff0c;点击next 3. 选择自己的安装路径&#xff08;默认是…...

std::reverse_iterator

std::reverse_iterator 是 C 标准库中的一个迭代器适配器&#xff08;iterator adapter&#xff09;&#xff0c;它允许你以反向顺序遍历容器或序列。这个适配器通过封装一个基础迭代器&#xff08;通常是正向迭代器&#xff09;并提供反向的递增&#xff08;&#xff09;和递减…...

On-Chip-Network之router微架构的物理实现

Low-Power Microarchitecture 自20世纪90年代以来&#xff0c;功耗一直是嵌入式芯片和高性能芯片面临的一个挑战。自2000年代中期以来&#xff0c;它已经成为大多数设计的主要约束。多核解决了功耗问题&#xff0c;由此产生的communication substrate&#xff0c;namely the on…...

学习threejs,使用canvas更新纹理

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️Texture 贴图 二、&#x1…...

CSS 选择器的优先级

一、基本概念 CSS 选择器的优先级决定了在样式冲突时&#xff0c;哪个样式规则将被应用到 HTML 元素上。通过理解 CSS 选择器的优先级&#xff0c;可以更好地控制网页元素的样式&#xff0c;避免样式冲突。 二、优先级计算规则 1. 内联样式 内联样式具有最高的优先级。 &l…...

如何将python项目导出为docker镜像

如何将python项目导出为docker镜像 前提条件步骤 1: 创建并准备 Python 项目步骤 2: 创建 `setup.py`步骤 3: 打包项目步骤 4: 创建 Dockerfile步骤 5: 构建 Docker 镜像步骤 6: 运行 Docker 容器步骤 7: 保存修改并继续开发总结要将修改后的Python代码导出为 .tar.gz 格式,并…...

微信 创建小程序码-有数量限制

获取小程序码&#xff1a;小程序码为圆图&#xff0c;有数量限制。 目录 文档 接口地址 功能描述 注意事项 请求参数 对接 获取小程序码 调用获取 小程序码示例 总结 文档 接口地址 https://api.weixin.qq.com/wxa/getwxacode?access_tokenaccess_token 功能描述 …...

桶排序(代码+注释)

#include <stdio.h> #include <stdlib.h>// 定义桶的结构 typedef struct Bucket {int* data; // 动态数组int count; // 当前存储的元素个数int capacity; // 桶的容量 } Bucket;// 初始化桶 void InitBucket(Bucket* bucket) {bucket->capacity 10; // 初…...

Python从入门到入狱

Python是从入门到入狱&#xff1f;这个充满调侃意味的说法在程序员圈子里流传甚广。表面看&#xff0c;它似乎是在嘲笑这门语言从简单易学到深陷麻烦的巨大反差&#xff0c;实际上却隐藏着很多值得深思的问题。要解读这个话题&#xff0c;得从Python的特点、使用场景以及潜在风…...

图像模糊处理

图像模糊处理 C语言实现C实现Java实现Python实现 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 给定n行m列的图像各像素点的灰度值&#xff0c;要求用如下方法对其进行模糊化处理&#xff1a; 1 四周最外侧的像素点灰度值不变&#xff1b…...

全面UI组件库Telerik 2024 Q4全新发布——官方宣布支持.NET 9

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库&#xff0c;加快开发速度。Telerik DevCraft提供最完整的工具箱&#xff0c;用于构建现代和面向未来的业务应用程序&#xff0c;目前提供UI for ASP.NET MVC、Ken…...

请求响应:常见参数接收及封装(Json参数及路径参数)

Json参数 Json格式的数据具有轻量级、易于阅读和编写、易于解析等诸多优点。在前后端交互时&#xff0c;大部分情况下请求体中的数据会以JSON格式进行传递。前端的请求在请求体中携带了Json格式数据&#xff0c;后端程序需要对其进行解析并封装使用&#xff0c;而接收Json参数…...