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

Spring MVC参数绑定终极手册:单多参对象集合JSON文件上传精讲

我们通过浏览器访问不同的路径,就是在发送不同的请求,在发送请求时,可能会带一些参数,本文将介绍了Spring MVC中处理不同请求参数的多种方式

一、传递单个参数

接收单个参数,在Spring MVC中直接用方法中的参数就可以,如以下代码:

@RequestMapping("Param")
@RestController
public class ParamController {@RequestMapping("a1")public String tex1(String string){return "接收到参数:"+string;}
}

我们使用Postman传参后,浏览器访问127.0.0.1:8080/Param/a1?string=Spring

Spring MVC会根据方法,找到对应的参数,赋值给方法,参数不一致,是获取不到参数,即为null(包装类型)

注意:

使用基本类型来接收参数时,参数必须传(除boolean类型),否则报500错误;类型不匹配,会报400错误(此处400/500等都是状态码,其他篇章会涉及讲解)

1.1、正常传递参数
@RequestMapping("a2")public Object text2(int a){return "接收到参数a:"+a;}

通过Fiddler观察请求和响应, HTTP响应状态码为200(正常)

1.2、不传a参数

通过Fiddler观察请求和响应, HTTP响应状态码为500(服务器异常)

尝试观察程序的错误日志,并解决:

可选的整型参数“a”存在,但由于被声明为基本类型,所以无法转换为 null 值。建议将其声明为对应基本类型的对象包装器。

1.3、传递参数类型不匹配

对于包装类型, 如果不传对应参数,Spring 接收到的数据则为null。所以开发中,对于参数可能为空的数据,建议使用包装类型

二、传递多个参数

和传输一个参数一样,直接使用方法的参数接收即可

@RestController
public class ParamController {@RequestMapping("Param")public String Demo1(String name,String age){return "接收到参数name: "+name+" ,age: "+age;}
}

使用浏览器发送请求并传参:127.0.0.1:8080/Param?name=小奥奇&age=8

可以发现,后端程序是正确拿到nameage参数的值

当有多个参数时,前后端是以参数的名称进行参数匹配的,但是参数的位置是不影响后端获取参数的结果

三、传递对象

如果需要传递的参数较多时,使用方法传参就要有很多形参,并且后续每增加一个参数,也要修改方法的声明,比较麻烦~,在此情况下我们便可以把这些参数封装成一个对象

Spring MVC 也可以自动实现对象参数的赋值,我们先创建一个Cat对象

public class Cat {private String name;private int age;private String hobby;public String getName() {return name;}public int getAge() {return age;}public String getHobby() {return hobby;}public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}public void setHobby(String hobby) {this.hobby = hobby;}@Overridepublic String toString() {return "Cat{" +"name='" + name + ''' +", age=" + age +", hobby='" + hobby + ''' +'}';}
}

实现传递对象的方法

  @RequestMapping("Cat")public Object Cat(Cat cat){return cat.toString();}

使用浏览器发送请求并传参:127.0.0.1:8080/Cat?name=咪咪&age=1&hobby=喜欢吃小鱼干

正好对应我们Cat类中的三个成员变量,此过程中 Spring 会根据参数名称自动绑定到对象的各个属性上,如果属性未传递,则会赋值位null(基本类型会被赋值为默认初始值,比如 int 赋值 0)

四、后端参数重命名(后端参数映射)

在一些情况下,前端传递的参数 key 和我们后端接受的 key 可以不一致,比如前端想加密URL中的信息,会使用 p 传递给后端,后端是使用 password 字段来接收的(保证可读性,不然后续维护时,不知道 p 到底是什么),如果出现这种情况,我们可以使用 @RequestParam 来重命名前后端的参数值

 @RequestMapping("A1")public String A1(@RequestParam("p") String password){return "接收参数: password:"+password;}

该注解表示从前端接收到 p 赋值给 password

那如果我们直接传递给后端的参数 password 呢?

2025-05-30T22:37:36.378+08:00 WARN 27268 — [SpringDemo1] [nio-8080-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required request parameter ‘p’ for method parameter type String is not present]

控制台打印日志显示:请求参数 p 不存在

那既然是 String 引用类型,我们尝试不传参数试试,会不会得到 null ~~

我们发现,当不传参数时,直接报客户端错误了,因为当我们使用该注解时,这个参数就变成必传参数了,我们点进该注解的源码中:

表示:若请求缺失此参数,会抛出**MissingServletRequestParameterException**,返回 HTTP 400(Bad Request) 错误,我们可以通过设置该 required 使该参数为非必传参数

@RequestMapping("A1")public String A1(@RequestParam(value = "p",required = false) String password){return "接收参数: password:"+password;}

required 设置为 false ,再次空传参数得到:

结论:

使用 @RequestParam 进行参数重命名时,请求参数只能和 @RequestParam 声明的名称一致,才能进行参数绑定和赋值

使用 @RequestParam 进行参数重命名时, 参数就变成了必传参数

五、传递数组

@RequestMapping("A2")public String A2(String[] arr){return "接收参数:arr:"+ Arrays.toString(arr);}

和传递引用类型一样,直接把数组当成参数,那数组包含多个元素,我们该如何传递呢?

此外,我们还可以直接使用方式二在一行中传递多个元素:

可以看到,方式二每个元素是以逗号分隔的,但是如果我们本来就要传递一个逗号呢?

那么逗号就会转义为%2c

六、传递集合

集合参数:和数组类似,同一个请求中出现多个同名参数,需要使用@RequestParam绑定参数关系,Spring自动将其值收集到一个集合中

@RequestMapping("A1")public String A1(@RequestParam List<Integer> list){return "接收参数:"+list;}

七、传递JSON数据

7.1、概念

JSON概念:JSON 全称为 JavaScript Object Notation(JavaScript 对象表示法),是一种轻量级的数据交互格式

简单来说:JSON就是客户端和服务端进行交互的一种数据格式有自己的格式和语法使用文本表示对一个对象或数组的信息,因此本质上是字符串,主要负责在不同的语言中数据传递和交换

7.2、JSON语法

还可以压缩为:

{“name”:“Json.CN”,“url”:“http://www.json.cn”,“page”:88,“isNonProfit”:true,“address”:{“street”:“科技园路.”,“city”:“江苏苏州”,“country”:“中国”},“links”:[{“name”:“Google”,“url”:“http://www.google.com”},{“name”:“Baidu”,“url”:“http://www.baidu.com”},{“name”:“SoSo”,“url”:“http://www.SoSo.com”}]}

我们可以使用在线JSON格式化工具来进行校验和书写:https://www.bejson.com/

7.3、JSON的优点:
  1. 简单易用:语法简单,易于理解和编写,可以快速进行数据交换。
  2. 跨平台支持:JSON可以被多种编程语言解析和生成,可以在不同的平台和语言之间进行数据交换和传输。
  3. 轻量级:相较于XML格式,JSON数据格式更加轻量级,传输数据时占用带宽较小,可以提高数据传输速度。
  4. 易于扩展:JSON的数据结构灵活,支持嵌套对象和数组等复杂的数据结构,便于扩展和使用。
  5. 安全性:JSON数据格式是一种纯文本格式,不包含可执行代码,不会执行恶意代码,因此具有较高的安全性。
7.4、JSON字符串和Java对象互转

Spring MVC框架集成了JSON的转换工具,我们可以直接使用来完成两者的互转

本质上是 jackson-databind 提供的功能,SpringMVC框架中已经把该工具包引入了进来,咱们直接使用即可,如果脱离SpringMVC使用,需要引入相关依赖

使用 ObjectMapper 对象提供的两个方法,可以完成对象和JSON字符串的互转 writeValueAsString: 把对象转为JSON字符串 readValue: 把字符串转为对象

public class JSONText {@Testpublic void JsontoJava() throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();//定义一个JSON字符串String s="{"name":"咪咪","age":1,"color":"blue"}";//转对象Animals cat=mapper.readValue(s,Animals.class);System.out.println(cat.toString());}@Testpublic void JavatoJson() throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();//创建Java对象Animals cat = new Animals();cat.setName("cat");cat.setAge(1);cat.setColor("blue");//转换为JSONString str = mapper.writeValueAsString(cat);System.out.println(str);}
}
7.5、传递JSON对象

接收JSON对象,需要使用@RequestBody注解

RequestBody:请求正文,意思是这个注解作用在请求正文的数据绑定,请求参数必须写在请求正文中

@RequestMapping("A3")public String A3(@RequestBody Animals animals){return animals.toString();}

我们再postman中传入的是JSON格式的字符串,但在后端代码中,Spring会把我们传入的JSON字符串转化成一个对象,我们就不用自己转化为Java对象了,还可以对此对象进行操作:

@RequestMapping("A3")public String A3(@RequestBody Animals animals){System.out.println(animals.getColor());animals.color="彩虹色";return animals.toString();}

八、获取URL中参数@PathVariable

这个注解主要作用在请求URL路径上的数据绑定(默认传递参数写在URL上,Spring MVC 就可以获取到)

@RequestMapping("A4/{id}")public String A4(@PathVariable Integer id){return "获取id: "+id;}

我们还可以传递两个参数:

@RequestMapping("A4/{id}/{age}")public String A4(@PathVariable Integer id,@PathVariable Integer age) {return "获取id: "+id+",age: "+age;}

这两个也默认为必传参数,如果我们只传递一个参数,会发生客户端错误,那么我们是否可以设置为非必传参数

答案是:理论上可以,但是我们若对改路径传一个参数,那么这个参数是id还是age****Spring也不知道,所以参数是必传的,另外我们可以重命名(此处不再演示)

九、上传文件@RequestPart

 @RequestMapping("A5")public String A5(MultipartFile file) {System.out.println(file.getOriginalFilename());return "文件获取成功";}

相关文章:

Spring MVC参数绑定终极手册:单多参对象集合JSON文件上传精讲

我们通过浏览器访问不同的路径&#xff0c;就是在发送不同的请求&#xff0c;在发送请求时&#xff0c;可能会带一些参数&#xff0c;本文将介绍了Spring MVC中处理不同请求参数的多种方式 一、传递单个参数 接收单个参数&#xff0c;在Spring MVC中直接用方法中的参数就可以…...

宽度优先遍历(bfs)(2)——fllodfill算法

欢迎来到博主的专栏&#xff1a;算法解析 博主ID&#xff1a;代码小豪 文章目录 floodfiil算法leetcode733——图像渲染题目解析算法原理题解代码 leetcode130——被围绕的区域题目解析算法原理题解代码 floodfiil算法 floodfill算法&#xff0c;在博主这里看来则是一个区域填…...

嵌入式编译工具链熟悉与游戏移植

一、Linux 系统编译工具链使用与 mininim 源码编译 在 Ubuntu 系统上编译 mininim 开源游戏需要正确配置编译工具链和依赖库。以下是详细的操作步骤和故障解决方法&#xff1a; 1. 环境准备与源码获取 首先需要安装必要的编译工具和依赖库&#xff1a; # 更新系统软件包索引…...

STUN (Session Traversal Utilities for NAT) 服务器是一种网络协议

STUN (Session Traversal Utilities for NAT) 服务器是一种网络协议&#xff0c;主要用于帮助位于网络地址转换 (NAT) 设备&#xff08;如路由器&#xff09;后面的客户端发现自己的公共 IP 地址和端口号。这对于建立点对点 (P2P) 通信至关重要&#xff0c;尤其是在 VoIP&#…...

Transformer结构介绍

[编码器 Encoder] ←→ [解码器 Decoder] 编码器&#xff1a; 输入&#xff1a;源语言序列输出&#xff1a;每个词的上下文表示(embedding) 解码器&#xff1a;输入&#xff1a;目标语言序列编码器输出输出&#xff1a;下一个词的概率分布&#xff08;目标句子生成&#xff09…...

SpringBoot扩展——应用Web Service!

应用Web Service Web Service是一个SOA&#xff08;面向服务的编程&#xff09;架构&#xff0c;这种架构不依赖于语言&#xff0c;不依赖于平台&#xff0c;可以在不同的语言之间相互调用&#xff0c;通过Internet实现基于HTTP的网络应用间的交互调用。Web Service是一个可以…...

5G核心网周期性注册更新机制:信令流程与字段解析

一、周期性注册更新的技术背景与流程概述 1.1 注册更新的核心目的 在5G网络中,UE通过周期性注册更新维持与核心网的连接状态,主要作用包括: 状态保活:避免AMF因超时而释放UE上下文(T3512定时器超时前需完成更新);位置更新:通知网络UE的当前位置,确保寻呼可达;能力同…...

【LLM学习笔记3】搭建基于chatgpt的问答系统(下)

目录 一、检查结果检查有害内容检查是否符合产品信息 二、搭建一个简单的问答系统三、评估输出1.当存在一个简单的正确答案2.当不存在一个简单的正确答案 一、检查结果 本章将引领你了解如何评估系统生成的输出。在任何场景中&#xff0c;无论是自动化流程还是其他环境&#x…...

算法导论第十九章 并行算法:解锁计算新维度

第十九章 并行算法&#xff1a;解锁计算新维度 “并行计算不是未来&#xff0c;而是现在。” —— David Patterson 在单核性能增长放缓的时代&#xff0c;并行算法成为突破计算极限的关键。本章将带你探索多核处理器、分布式系统和GPU加速的奇妙世界&#xff0c;揭示如何通过协…...

Python 数据分析与可视化 Day 1 - Pandas 数据分析基础入门

&#x1f3af; 今日目标 理解 Pandas 的作用和核心概念学会创建 Series 和 DataFrame掌握基本数据读取&#xff08;CSV&#xff09;与常用查看方法 &#x1f9f0; 1. 什么是 Pandas&#xff1f; Pandas 是基于 NumPy 的强大数据分析库&#xff0c;提供了灵活的表格数据结构 Da…...

【数字人开发】Unity+百度智能云平台实现长短文本个性化语音生成功能

一、创建自己的应用 百度智能云控制台网址&#xff1a;https://console.bce.baidu.com/ 1、创建应用 2、获取APIKey和SecretKey 3、Api调试 调试网址&#xff1a;https://console.bce.baidu.com/support/?timestamp1750317430400#/api?productAI&project%E8%AF%AD%E9%…...

(哈希)128. 最长连续序列

题目 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#xff1a; 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#xff…...

MFC中使用CRichEditCtrl控件让文本框中的内容部分加粗

MFC中文本框控件的内容&#xff0c;设置好字体格式后&#xff0c;只能单一的显示&#xff0c;如果相对文本框的内容部分加粗&#xff0c;或者部分加颜色、链接等都无法实现&#xff0c;但MFC中提供了CRichEditCtrl控件&#xff0c;就很方便的实现文本框中部分内容需要特殊处理的…...

Redis 的优势有哪些,它是CP 还是 AP?CAP 理论又是什么?

Redis的核心优势 Redis作为当今最流行的内存数据库之一&#xff0c;具有以下显著优势&#xff1a; 1. 卓越的性能表现 内存存储&#xff1a;数据主要存储在内存中&#xff0c;读写速度极快&#xff08;10万 QPS&#xff09;单线程架构&#xff1a;避免多线程竞争&#xff0c…...

flink的多种部署模式

## 部署模式和运行模式 ### 部署模式 - 本地local - 单机无需分布式资源管理 - 集群 - 独立集群standalone - 需要flink自身的任务管理工具 - jobmanager接收和调度任务 - taskmanager执行 - on其他资源管理工具yarn/k8s …...

SQL分片工具类

SQL分片工具类(SqlShardingUtil)提供数据库查询的智能分片功能&#xff0c;支持数字和字符串两种字段类型的分片策略。对于数字字段&#xff0c;可以指定分片数量均匀划分数值区间&#xff1b;对于字符串字段&#xff0c;则按照ASCII字符范围自动划分。工具类确保分片后的SQL语…...

死锁相关知识

死锁是什么 死锁&#xff08;Deadlock&#xff09;是指两个或多个进程&#xff08;或线程&#xff09;在执行过程中&#xff0c;因为互相等待对方释放资源&#xff0c;导致永远无法继续执行的状态。 ✅ 死锁的形成条件&#xff08;必须同时满足以下四个&#xff09;&#xff1…...

oscp靶机练习PG Reconstruction

枚举阶段 nmap -A -T4 -p- -Pn -n 192.168.217.103 发现ftp&#xff0c;进行连接枚举 都下载到本地 这里提示我们两点&#xff0c;可以看看pcap文件&#xff0c;还有就是可能有密码遗留还没有删除。 使用下面命令进行过滤筛选流量包&#xff0c;查看与密码相关 http.reque…...

写题。贪心题组

一、 解题思路&#xff1a;主要还是写出val / m&#xff0c;按这个排序&#xff0c;就行了 #include<bits/stdc.h> #define endl "\n" #define ll long long #define pii pair<int,int> using namespace std;struct doro {int m, val;double cmp; } arr…...

UE官方文档学习 TAarry 查询

这个很简单经常用。 二.GetData() . GetData()&#xff0c;像C里拿到数组首地址一样。它不具有越界保护机制&#xff0c;StrArr拥有越界保护机制。这个地址在数组不做改变&#xff0c;如扩容等有用。 void AWXArrayActor::WXFindArray() {TArray<FString> StrArr { &q…...

使用Haproxy搭建Web群集

LVS负载均衡群集 Haproxy介绍http请求负载均衡常用调度算法常见的web群集调度器 示例操作安装httpd&#xff08;两台网站服务器操作一致&#xff09;编译安装haproxyhaproxy服务器配置(1)建立haproxy的配置文件(2)修改haproxy.cfg配置文件 测试haproxy的日志(1)修改 haproxy 配…...

Linux 基础命令:`ls`、`cd`、`du` 快速入门

在 Linux 系统中&#xff0c;ls、cd 和 du 是日常操作中最常用的三个命令。掌握它们能大幅提升文件管理效率。 1. ls&#xff1a;查看目录内容 用途&#xff1a;列出当前或指定目录下的文件和子目录。 常用命令&#xff1a; ls -l # 详细列表&#xff08;权限、大…...

[论文阅读] 人工智能 + 软件工程 | USEagent:迈向统一的AI软件工程师

论文信息 article{applis2025unified,title{Unified Software Engineering agent as AI Software Engineer},author{Applis, Leonhard and Jiang, Nan and Zhang, Yuntong and Tan, Lin and Liang, Shanchao and Roychoudhury, Abhik},journal{arXiv preprint arXiv:2506.1468…...

微信小程序传参过来了,但是数据没有获取到

使用本方法前&#xff0c;已经采用encodeURIComponent把拼接的参数编码之后&#xff0c;拼接在链接上&#xff0c;在接受的页面的onLoad生命周期&#xff0c;接收到参数之后&#xff0c;采用decodeURIComponent进行解码的操作&#xff0c;如果这个也不行&#xff0c;不是说不行…...

微信小程序form表单手机号正则检验pattern失效

好奇怪啊&#xff0c;h5页面校验没问题&#xff0c;在微信小程序模拟器以及真机运行都失效&#xff0c;排查半天&#xff0c;记录一下 PS&#xff1a;身份证号校验也没问题&#xff0c;就手机号校验有问题&#xff0c;奇奇怪怪的 之前的写法&#xff08;在小程序上不生效&…...

repo 工具

repo 是 Google 为管理多个 Git 仓库而开发的工具&#xff0c;主要用于 Android 开源项目&#xff08;AOSP&#xff09;等大型项目。它通过清单文件&#xff08;manifest.xml&#xff09;统一管理多个 Git 仓库的依赖关系。以下是核心用法和常见命令&#xff1a; 一、安装 repo…...

Python实例题:基于 TensorFlow 的图像识别与分类系统

目录 Python实例题 题目 问题描述 解题思路 关键代码框架 难点分析 扩展方向 Python实例题 题目 基于 TensorFlow 的图像识别与分类系统 问题描述 开发一个基于 TensorFlow 的图像识别与分类系统&#xff0c;包含以下功能&#xff1a; 图像分类模型&#xff1a;基于…...

Windows 10开始菜单优化方案,如何实现Win7风格开始菜单的还原

今天阿灿给大家安利个好东西 Start10这软件能让Win10的开始菜单变回Win7那种经典样式&#xff0c;用起来特别顺手。不仅能改开始菜单外观&#xff0c;还能调整任务栏布局&#xff0c;想怎么设置都行。 我用它主要就图两点&#xff1a; 1. 找回Win7那种简洁好用的开始菜单 2.…...

Kafka性能压测报告撰写

在大数据生态体系中&#xff0c;Kafka以其卓越的高吞吐、低延迟特性&#xff0c;成为消息队列领域的中流砥柱。然而&#xff0c;随着业务规模不断扩张&#xff0c;数据流量日益激增&#xff0c;Kafka的性能表现直接关乎业务系统的稳定运行与效率提升。通过科学严谨的性能压测&a…...

IP 地理库的使用指南:从基础应用到深度实践​

P 地理库的使用指南&#xff1a;从基础应用到深度实践​ ​ 在数字化时代&#xff0c;IP 地址如同网络世界里的 “门牌号码”&#xff0c;而 IP 地理库则是解读这些号码背后秘密的 “解码器”。它不仅能定位 IP 对应的地理位置&#xff0c;还能挖掘出丰富的网络属性信息。接下来…...

C#的泛型和匿名类型

一、C#的泛型简介 泛型是一种允许你延迟编写类或方法中的数据类型规范&#xff0c;直到你在实际使用时才替换为具体的数据类型【简单的说&#xff1a;泛型就是允许我们编写能够适用于任何数据类型的代码&#xff0c;而无需为每种特定类型重写相同的代码】(T是类型参数&#xff…...

ABP VNext + MongoDB 数据存储:多模型支持与 NoSQL 扩展

&#x1f680; ABP VNext MongoDB 数据存储&#xff1a;多模型支持与 NoSQL 扩展&#xff08;生产级实践&#xff09; 目录 &#x1f680; ABP VNext MongoDB 数据存储&#xff1a;多模型支持与 NoSQL 扩展&#xff08;生产级实践&#xff09;&#x1f3af; 引言&#x1f9f0…...

JETBRAINS IDE 开发环境自定义设置快捷键

Date: 2025-06-18 20:39:52 author: lijianzhan JetBrains简介 让它发生。 用代码。 在JetBrains&#xff0c;代码是我们的激情所在。自成立以来&#xff0c;我们一直致力于打造世界上最强大、最有效的开发工具。 1.JETBRAINS官网&#xff0c;可以在官网下载代码编辑器 2.进入…...

JAVA——泛型

泛型&#xff08;Generics&#xff09;是Java语言在JDK 5.0版本中引入的一种强大特性&#xff0c;用于在编译时提供更强的类型检查和类型安全。它允许程序员在定义类、接口和方法时使用类型参数&#xff08;Type Parameters&#xff09;&#xff0c;从而实现类型参数化。通过泛…...

攻防演练:1.木马后门文件演练

为了防止 Linux 服务器上传木马后门文件&#xff0c;可以编写一个脚本&#xff0c;定期检查系统中的可疑文件、进程和权限。以下是一个示例脚本&#xff0c;用于检查常见的后门文件、异常进程和权限问题。 脚本功能 检查常见后门文件路径。检查异常 SUID/SGID 文件。检查异常进…...

c++ STL---vector使用

本文对STL---中的vector的使用是参考网站 vector - C Reference 的内容&#xff0c;该网站是外文的哦&#xff0c;大家可以尝试打开看看更深刻的理解。本文是抽取其中常使用&#xff0c;然后加上自己的是理解哦。 前言 vector其实是顺序表类模板的封装啊&#xff01; 数据结构…...

windows标题栏显示奇怪的蓝色,怎么解决

背景 如下&#xff0c;非常奇怪&#xff0c;如果窗口是active状态就是蓝色的&#xff0c;为什么&#xff1f; 如果你遇到上述问题&#xff0c;可以这么解决&#xff1a; 右键点击桌面&#xff0c;选择 “个性化”&#xff0c; 滚动到下面&#xff0c;看到 “标题栏和窗口边…...

Kafka存储设计深度剖析:日志、索引与文件管理的底层奥秘

引言 在分布式消息系统领域&#xff0c;Kafka凭借卓越的性能与高可靠性占据重要地位&#xff0c;而这一切都离不开其精妙的存储设计。从消息的持久化存储到高效检索&#xff0c;从日志分段管理到数据清理策略&#xff0c;Kafka的存储架构设计巧妙&#xff0c;能够支撑海量消息…...

将多个Excel合并到一个Excel中的方法

今天遇到这么一个问题&#xff0c;需要将多个Excel表格中的数据汇总表&#xff0c;合并在一个Excel中&#xff0c;并且显示一致。 因此编写了以下代码来解决这个问题&#xff0c; 1.在Excel中按AltF11&#xff0c;快速调出命令控制台 2.工具栏选择插入——模块——将以下脚本…...

Debian配置Redis主从、哨兵

前言 Redis的下载安装可参考Centos安装配置Redis6.x&#xff0c;Centos和Debian的步骤基本类似&#xff0c;或自行在网上搜索相关资料 注意&#xff1a;远程连接需放开相应端口 主从 搭建一个一主二从的主从模式 处理conf文件 #进入redis所在目录 cd /tools/redis/redis6 …...

OpenSSL引擎 + PKCS11 + SoftHSM2认证

OpenSSL引擎 PKCS11 SoftHSM2 前言&#xff1a;金融级安全的基石 在金融、军工等高安全领域&#xff0c;硬件安全模块&#xff08;HSM&#xff09; 是保护加密密钥的黄金标准。本文将深度剖析HSM核心组件libpkcs11.so的工作原理&#xff0c;并手把手教你搭建基于SoftHSM2的…...

flex布局 项目属性

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>flex布局 项目属性</title> <link href"css/k.css" rel"stylesheet" /> </head> <bod…...

流水表延迟处理方案设计

**### 流水表延迟处理方案设计 针对你的场景&#xff08;流水表插入记录&#xff0c;当type4时需要1秒后处理&#xff09;&#xff0c;结合现有技术栈&#xff08;JDK8、MySQL、定时任务、Redis、RabbitMQ&#xff09;&#xff0c;我推荐以下几种可行方案&#xff1a; 一、方…...

密室出逃消消乐小游戏微信流量主小程序开源

这个密室出逃消消乐小游戏采用了微信小程序的标准目录结构&#xff0c;包含以下核心功能&#xff1a; 游戏界面&#xff1a;6x6 的网格布局&#xff0c;随机生成不同类型的物品 游戏逻辑&#xff1a;交换相邻物品&#xff0c;消除三个或以上相同类型的物品 计分系统&#xff1a…...

Docker 日志

Docker 日志是排查容器故障、监控运行状态的重要工具。下面从 日志查看命令、详解字段、日志驱动、最佳实践 四个方面给你详细解析。 一、最常用日志命令 1. 查看容器日志&#xff08;默认 stdout、stderr&#xff09; docker logs <container_name|container_id>2. 实…...

嵌入Linux快速入门第3篇

01_嵌入式Linux开发环境介绍 在Windows环境下的操作&#xff1a; 02_配置VMware使用双网卡之NAT网卡 虚拟机内部有两个网卡&#xff0c;一个是NAT网卡&#xff0c;另外一个是桥接网卡。NAT网卡用来保证Ubuntu可以上网&#xff0c;桥接网卡用来保证Ubuntu可以和开发板进行数据…...

详解鸿蒙Next仓颉开发语言中的全屏模式

大家好&#xff0c;今天跟大家分享一下仓颉开发语言中的全屏模式。 和ArkTS一样&#xff0c;仓颉的新建项目默认是非全屏模式的&#xff0c;如果你的应用颜色比较丰富&#xff0c;就会发现屏幕上方和底部的留白&#xff0c;这是应用自动避让了屏幕上方摄像头区域和底部的导航条…...

Oracle/MySQL/SqlServer/PostgreSQL等数据库的数据类型映射以及各版本数据类型情况说明

1 引言 近期工作聚焦于跨数据库系统的数据类型兼容性研究&#xff0c;旨在解决多源异构数据迁移、系统集成及版本升级中的类型映射难题。具体任务包括&#xff1a;1&#xff09;建立主流数据库&#xff08;如MySQL、Oracle、PostgreSQL、SQL Server等&#xff09;的数据类型映射…...

新生活的开启:从 Trae AI 离开后的三个月

很久没有写文章了&#xff0c;想借着入职新公司一个月的机会&#xff0c;和大家唠唠嗑。 离职 今年2月份我从字节离职了&#xff0c;结束了四年的经历&#xff0c;当时离开的核心原因是觉得加班时间太长了&#xff0c;平均每天都要工作15&#xff0c;16个小时&#xff0c;周末…...

背包问题概论(01背包,完全背包,多重背包)DP

背包问题概论&#xff08;01背包&#xff0c;完全背包&#xff0c;多重背包&#xff09;DP 背包问题一种经典的组合优化问题&#xff0c;主要用于在有限的容量下选择物品以最大化总价值。它分为几种类型&#xff1a;   ①&#xff1a;0/1背包问题&#xff1a;每种物品只能选择…...