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

springboot+vue3+mysql+websocket实现的即时通讯软件

项目演示

即时通讯软件项目演示

业务架构

技术栈

  • 后端
    • 选用编程语言 Java
    • web框架SpringBoot
    • db MySQL 持久存储
    • nosql 缓存 Redis
    • 全双工通信框架 WebSocket
  • 前端
    • 前端框架Vue3
    • Typescript
    • UI样式 Css、ElementPlus
    • 网页路由 vue-router
    • 全双工通信框架Websocket

功能完成情况

已实现功能

  • 用户登录
  • 用户注册
  • 加好友
  • 删除好友
  • 拉黑好友
  • 好友搜索与列表
  • 发起群聊
  • 消息单聊
  • 群聊
  • 群成员列表模块
  • 用户信息查看

未实现功能

  • 聊天消息模块
    • 消息提醒
    • 群公告
    • 群成员权限管理
    • 视频/图片/文件消息发送
    • 语音通话
    • 视频通话
  • 好友与通讯录模块
    • 星标联系人
    • 群邀请与分享
  • 全局搜索模块
  • 智能机器人模块
  • 直播模块
  • 额外功能

功能概述与演示

注册 

接口介绍

接口请求类型入参出参
/api/register/userPOST{
    "phone": "13333331333",
    "password": "3",
    "userName": "用户"
}
{
    "success": true,
    "code": 200
}

功能演示

用户注册功能演示

密码登录

接口介绍

接口请求类型入参出参(注意这里的密码和用户id尽量不返回也可以加密处理)
/api/user/loginPOST{
    "phone": "13333331333",
    "password": "3"
}
{
    "success": true,
    "data": {
        "user": {
            "id": 1067,
            "phone": "13333331333",
            "password": "$2a$10$23XaLqWQcdGHduNBMoA2iuHyLO4VPgjYpZgFE5aQ8YMhPLgYVN2S6",
            "userName": "用户",
            "avatar": "https://picsum.photos/60",
            "createTime": "2025-04-20T20:13:01",
            "updateTime": "2025-04-20T20:13:01"
        },
        "token": "641ca53c42604b3dbbb7792c6484a767"
    },
    "code": 200
}

功能演示

用户密码登录

发送验证码

接口介绍

接口请求类型入参(Query Param)出参(注意这里的密码和用户id尽量不返回也可以加密处理)
/api/user/code?phone=13333331333POST
    phone=13333331333
 
{
    "success": true,
    "data": {
        "code": "346413"//验证码有效期5分钟
    },
    "code": 200
}

验证码登录

接口介绍

接口请求类型入参出参(注意这里的密码和用户id尽量不返回也可以加密处理)
/api/user/login/codePOST{
    "phone": "13333331333",
    "password": "3"
}
{
    "success": true,
    "data": {
        "user": {
            "id": 1067,
            "phone": "13333331333",
            "password": "$2a$10$23XaLqWQcdGHduNBMoA2iuHyLO4VPgjYpZgFE5aQ8YMhPLgYVN2S6",
            "userName": "用户",
            "avatar": "https://picsum.photos/60",
            "createTime": "2025-04-20T20:13:01",
            "updateTime": "2025-04-20T20:13:01"
        },
        "token": "641ca53c42604b3dbbb7792c6484a767"
    },
    "code": 200
}

功能演示

用户验证码登录

加好友

接口介绍

接口请求类型入参出参
/api/friends/friend-applyPOST{
    "applyUserId": 1055,
    "reason": "加好友"
}
{
    "success": true,
    "code": 200
}

功能演示

加好友请求

单聊

接口介绍

接口请求类型入参出参
/api/chat/sendPOST{
    "id": "",
    "sendUser": 1055,
    "receiveUser": 1065,
    "message": "😊",
    "notRead": "0",
    "chatType": "private",
    "groupId": "4a6b8ef8-0dd0-4089-81b4-07e30c6dff3d",
    "createTime": "",
    "updateTime": "",
    "content": "😊"
}
{
    "success": true,
    "code": 200
}

功能演示

单聊

群聊

接口介绍

接口请求类型入参出参
/api/chat/sendPOST{
    "id": "",
    "sendUser": 1055,
    "receiveUser": 1065,
    "message": "😊",
    "notRead": "0",
    "chatType": "group",
    "groupId": "4a6b8ef8-0dd0-4089-81b4-07e30c6dff3d",
    "createTime": "",
    "updateTime": "",
    "content": "😊"
}
{
    "success": true,
    "code": 200
}

功能演示

群聊

群设置

接口介绍

接口请求类型入参(Query Param)出参
/api/group/getGroupMember?groupId=4a6b8ef8-0dd0-4089-81b4-07e30c6dff3dGETgroupId=4a6b8ef8-0dd0-4089-81b4-07e30c6dff3d

{
    "success": true,
    "data": [
        {
            "id": 1065,
            "phone": "13313090333",
            "password": "$2a$10$GwEKhLeiZWhGJs8xdWaVnex28cxuVIHkHpQLa6/yVXCZbGUaSh12C",
            "userName": "测试用户注册",
            "avatar": "https://picsum.photos/69",
            "createTime": "2025-04-20T16:18:02",
            "updateTime": "2025-04-20T17:35:21"
        },
        {
            "id": 1055,
            "phone": "13689663339",
            "password": "$2a$10$rFPIQuKW1c7ndozOQM5EkO9JIGd4DJrlQtdZpi9cNv7DGg2..EDGK",
            "userName": "测试用户t",
            "avatar": "https://picsum.photos/61",
            "createTime": "2025-02-04T16:07:03",
            "updateTime": "2025-04-14T13:52:19"
        },
        {
            "id": 1063,
            "phone": "13389663331",
            "password": "$2a$10$2FHzcu9DCVh.Zvx9cRR4WuKJm/xNC6uyR9BCivcT0bxmwv4ye/4VW",
            "userName": "测试用户e",
            "avatar": "https://picsum.photos/66",
            "createTime": "2025-04-20T15:37:22",
            "updateTime": "2025-04-20T17:35:21"
        }
    ],
    "code": 200
}

功能演示

群设置

单聊好友设置

接口介绍

接口请求类型入参(Query Param)出参
/api/group/getGroupMember?groupId=GETgroupId=

{
    "success": true,
    "data": [],
    "code": 200
}

功能演示

单聊好友设置

后续功能开发

后续会持续完成未完成的功能

会考虑如下3个方向持续完善

  • 功能持续强化和优化,如消息已未读状态、智能机器人消息、视频通话、文件消息、语音消息、全局搜索、直播、群邀请与分享
  • 微服务拆分,当前的架构为单体服务架构,后续会拆分成微服务,springcloud实现
  • 当前的项目为Java开发完成的,会考虑用go语言再实现一次

项目地址与部署 kChat_web

项目前端地址: https://github.com/enjoykanyu/kChat_web/

项目后端地址:https://github.com/enjoykanyu/chat_serve/

项目后端部署:项目部署所需资源和配置请参考application.yml文件,启动springboot

项目前端资源下载与部署:

  • 下载依赖资源 npm -i
  • 部署 npm run dev

贡献与提问

本人开发能力有限,项目中可能会有部分bug,若对于本项目有任何问题和bug,可以随时在githup上提issue

最后 - 觉得项目不错的话,欢迎star支持下,感谢🫰  

对于项目有任何问题欢迎提问和提issue

同时欢迎对本项目push贡献

相关文章:

springboot+vue3+mysql+websocket实现的即时通讯软件

项目演示 即时通讯软件项目演示 业务架构 技术栈 后端 选用编程语言 Javaweb框架SpringBootdb MySQL 持久存储nosql 缓存 Redis全双工通信框架 WebSocket 前端 前端框架Vue3TypescriptUI样式 Css、ElementPlus网页路由 vue-router全双工通信框架Websocket 功能完成情况 已实…...

HTMLCSS实现网页轮播图

网页中轮播图区域的实现与解析 在现代网页设计中&#xff0c;轮播图是一种常见且实用的元素&#xff0c;能够在有限的空间内展示多个内容&#xff0c;吸引用户的注意力。下面将对上述代码中轮播图区域的实现方式进行详细介绍。 一、HTML 结构 <div class"carousel-c…...

HTML表单与数据验证设计

HTML 表单与数据验证设计&#xff1a;构建可靠的用户数据采集系统 引言 互联网的核心是数据交互&#xff0c;而HTML表单是这一交互的主要入口。作为前端工程师&#xff0c;设计高质量的表单不仅关乎用户体验&#xff0c;更直接影响数据收集的准确性和系统安全。 在我的学习实…...

[Windows] 星光桌面精灵 V0.5

[Windows] 星光桌面精灵 链接&#xff1a;https://pan.xunlei.com/s/VOOI9NCNDB0iBONt5gz7zUb9A1?pwdgxa6# [Windows] 星光桌面精灵 V0.5 这款桌面精灵是动态的&#xff0c;而且还可以做快捷启动...

Java 网络编程性能优化:高吞吐量的实现方法

Java 网络编程性能优化&#xff1a;高吞吐量的实现方法 在当今的互联网时代&#xff0c;网络应用的性能优化是开发人员面临的重要挑战之一。Java 作为一门广泛使用的编程语言&#xff0c;提供了强大的网络编程支持&#xff0c;但如何通过优化实现高吞吐量&#xff0c;是每个 J…...

【去哪儿网】登录滑块逆向算法AES加密分析(逆天滑块轨迹)

目标&#xff1a;aHR0cHM6Ly91c2VyLnF1bmFyLmNvbS9wYXNzcG9ydC9sb2dpbi5qc3A 验证接口&#xff1a; https://vercode.qunar.com/inner/captcha/snapshot 可以发现是encryption方法生成&#xff0c;进入encryption里面&#xff0c;发现是AES加密的轨迹 track就是轨迹 直接…...

Redis ④-通用命令

Redis 是一个 客户端-服务器 结构的程序&#xff0c;这与 MySQL 是类似的&#xff0c;这点需要牢记&#xff01;&#xff01;&#xff01; Redis 固然好&#xff0c;但也不是任何场景都适合使用 Redis&#xff0c;一定要根据当前的业务需求来选择是否使用 Redis Redis 通用命令…...

机制的作用

“机制”是一个广泛使用的概念&#xff0c;其含义和应用范围因领域而异。在不同的学科和实际应用中&#xff0c;机制有着不同的定义和功能。以下从几个主要领域对“机制”进行详细解释&#xff1a; 一、自然科学中的机制 &#xff08;一&#xff09;物理学 定义 在物理学中&…...

Pandas:数据处理与分析的核心操作

Pandas&#xff1a;数据处理与分析的核心操作 Pandas 是 Python 数据分析的核心库&#xff0c;它提供了高性能、易用的数据结构和数据分析工具。本文将详细介绍 Pandas 的核心操作&#xff0c;帮助你高效进行数据处理和分析。 1. Pandas 基础数据结构 Pandas 有两个主要的数…...

Kotlin实现Android应用保活方案

Kotlin实现Android应用保活优化方案 以下的Android应用保活实现方案&#xff0c;更加符合现代Android开发规范&#xff0c;同时平衡系统限制和用户体验。 1. 前台服务方案 class OptimizedForegroundService : Service() {private val notificationId 1private val channel…...

硬件电路(25)-过温保护器件ksd9700温控开关

一、概述 KSD9700系列温控开关是一种双金属作为感温元件的温控器&#xff0c;具有动作迅速、控温精确、控制电流大、使用寿命长的特点&#xff0c;被广泛应用于各类微型电机、电磁炉、空调电机、小家电等做温度保护控制。 二、应用 KSD9700系列产品是一种双金属作为感温元件的…...

vuex实现同一页面radio-group点击不同按钮显示不同表单

本文实现的是点击单一规格和多规格两个按钮会在页面显示不同的表单 方法一 <!-- 单规格和多规格的切换 --> <el-form label-width"80px" class"text-align-left"><el-form-item label"商品规格"><!-- 监听skus_type的改…...

代码随想录训练营第36天 ||1049. 最后一块石头的重量 II 494. 目标和 474. 一和零

1049. 最后一块石头的重量 II 讲解&#xff1a;代码随想录 思路&#xff1a; 01背包问题&#xff1a;题意说要求粉碎石头后留下的最小石头重量&#xff0c;石头粉碎的规则是两个石头如果重量相等&#xff0c;同时粉碎&#xff0c;如果重量不相等&#xff0c;粉碎后的重量是大…...

[Spring]SSM整合

第一步 整合任何框架&#xff0c;首先都是导入相关的jar包&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.18</version></dependency><!--mybatis依…...

【HDFS】HDFS数据迁移与备份全攻略:从日常备份到灾难恢复

目录 1 HDFS数据迁移与备份概述 2 集群间数据迁移&#xff1a;DistCp工具详解 2.1 DistCp工作原理架构 2.2 DistCp标准工作流程 2.3 DistCp性能优化方案 3 离线备份实施策略 3.1 HDFS到本地备份架构 4 灾难恢复方案设计 4.1 基于快照的恢复流程 4.2 数据一致性校验方…...

动态规划入门:背包问题求具体方案(以0-1背包问题为例)

本质&#xff1a;有向图最短&#xff08;长&#xff09;路问题 字典序最小方案&#xff1f;--贪心思路&#xff1f;&#xff08;本题未使用&#xff09; 分析第一个物品&#xff1a; 写代码时tip&#xff1a;要考虑“边读边做”还是“先读后做” #include<iostream> #i…...

git学习日志

你看到的是 Vim 文本编辑器的界面&#xff0c;并非 git 的窗口。这是你通过 vim hello.txt 命令打开的新文件。以下是分步操作指南&#xff1a; 1. 进入编辑模式 按下键盘上的 i 键&#xff08;进入 “INSERT” 模式&#xff09;&#xff0c;此时左下角会显示 -- INSERT --。现…...

数字孪生废气处理工艺流程

图扑数字孪生废气处理工艺流程系统。通过精准 3D 建模&#xff0c;对废气收集、预处理、净化、排放等全流程进行 1:1 数字化复刻&#xff0c;实时呈现设备运行参数、污染物浓度变化等关键数据。 借助图扑可视化界面&#xff0c;管理者可直观掌握废气处理各环节状态&#xff0c…...

iPhone 13P 换超容电池,一年实记的“电池循环次数-容量“柱状图

继上一篇 iPhone 13P 更换"移植电芯"和"超容电池"&#x1f50b;体验&#xff0c;详细记录了如何更换这两种电池&#xff0c;以及各自的优略势对比。 一晃一年过去&#xff0c;时间真快&#xff0c;这次分享下记录了使用超容电池的 “循环次数 - 容量(mAh)…...

豆瓣图书数据采集与可视化分析(二)- 豆瓣图书数据清洗与处理

文章目录 前言一、查看数据基本信息二、拆分pub列三、日期列处理四、价格列处理五、出版社列处理六、评价人数列处理七、缺失值处理八、重复数据处理九、异常值处理十、完整代码十一、清洗与处理后的数据集展示 前言 豆瓣作为国内知名的文化社区&#xff0c;拥有庞大且丰富的图…...

【Sa-Token】学习笔记05 - 踢人下线源码解析

目录 前言 强制注销 踢人下线 源码解析 前言 所谓踢人下线&#xff0c;核心操作就是找到指定 loginId 对应的 Token&#xff0c;并设置其失效。 上图为踢人下线后&#xff0c;前端应该用图像给出来让用户重新登录&#xff0c;而不是让前端收到一个描述着被下线 的JSON 强…...

Linux | I.MX6ULL 文件系统

01 本节所有的测试程序需要开发板有 Qt 环境来运行。我们提供的文件系统是由 yocto 裁剪整理得来的。之后我们会整理一份单独移植的 qt 系统。方便用户移植第三方软件。如果用户的文件系统非我们的出厂版本,请参考之前烧写章节重新烧写出厂文件系统。开发板启动需要输入登录…...

Python3基础语法

一&#xff1a;注释 Python中用#表示单行注释&#xff0c;#之后的同行的内容都会被注释掉。 使用三个连续的双引号表示多行注释&#xff0c;两个多行注释标识之间内容会被视作是注释。 二&#xff1a;基础变量类型与操作符 1. 除法 * 除法 / python3中就算是两个整数相除&a…...

QEMU源码全解析 —— 块设备虚拟化(20)

接前一篇文章:QEMU源码全解析 —— 块设备虚拟化(19) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM源码解析与应用》 —— 李强,机械工业出版社 特此致谢! 上一回大致解析了drive_new函数,本回重点对于drive_new函数中调用的blockdev_init函…...

JavaScript 笔记 --- part 4 --- Web API (part 2)

(webAPI part2) DOM 基本操作 事件流 定义: 指的是事件完整执行过程中的流动路径 捕获阶段: 事件从最外层的窗口对象开始&#xff0c;逐层向内传播到目标元素&#xff0c;并触发相应的事件处理程序。 冒泡阶段: 事件从目标元素开始&#xff0c;逐层向外传播到最外层的窗口对象…...

从入门到精通汇编语言 第六章(中断及外部设备操作)

参考教程&#xff1a;通俗易懂的汇编语言&#xff08;王爽老师的书&#xff09;_哔哩哔哩_bilibili 一、移位指令 1、8个移位指令 &#xff08;1&#xff09;逻辑左移指令SHL&#xff1a;SHL OPR, CNT。 ①OPR为操作数&#xff0c;CNT为左移位数&#xff0c;该指令将OPR视作…...

PySide6 GUI 学习笔记——常用类及控件使用方法(常用类尺寸QSizeF)

QSizeF 类&#xff08;浮点尺寸类&#xff09; 文章目录 QSizeF 类&#xff08;浮点尺寸类&#xff09;概述主要方法列表详细说明及应用举例注意事项 概述 QSizeF 类使用浮点精度定义二维对象的尺寸。官方文档在这里。 主要方法列表 __init__(self) …...

操作系统中的虚拟化技术深度对话

操作系统中的虚拟化技术深度对话 参与者&#xff1a;系统工程师&#xff08;Engineer&#xff09;、开发者&#xff08;Developer&#xff09;、学生&#xff08;Student&#xff09; 1. 虚拟化的基本概念 Student&#xff1a;虚拟化到底是什么&#xff1f;为什么操作系统需要…...

第35讲:构建属于自己的遥感大模型平台,并接入地理数据工作流

目录 🌍 写在前面 一、为什么要构建属于自己的遥感大模型平台? 二、核心技术选型推荐 ✅ 前端部分 ✅ 后端部分 ✅ 部署平台 三、平台架构设计思路 四、案例实战:构建一个在线遥感分割平台 📌 第一步:模型服务封装(FastAPI) 📌 第二步:前端上传与展示(L…...

langchain-nextjs-template 模板安装与配置

前提条件&#xff1a; node安装yarn 安装&#xff1a;npm install -g yarn 目录 1. 克隆项目2. 安装依赖3. 配置环境变量4. 修改模型配置5. 启动开发服务器6. 项目结构说明7. 功能说明8. 自定义提示模板部分过程文件截图 1. 克隆项目 首先&#xff0c;从 GitHub 克隆 LangCha…...

安卓单机斗地主,具备休闲挑战等多模式

软件介绍 斗地主单机版是一款超适合在安卓设备上玩的游戏。当你周末玩网游玩累了的时候&#xff0c;它就是个很不错的选择哦。 多种模式可选 这个斗地主单机版有不同的模式呢&#xff0c;有休闲模式、挑战模式、炸弹场和大师赛。你可以根据自己的喜好随意挑选模式&#xff0c…...

电解电容失效分析过程、失效分析报告

参考&#xff1a; 深度剖析关键电子元器件电解电容内部故障隐患 电解电容的参数指标 电路板中电解电容是存在寿命的&#xff0c;电解电容中的电解液随着时间会慢慢减少导致电容容值降低&#xff0c;最终导致电源出现问题。相信大家都见过电解电容鼓包的情况。 所以做设计的时…...

Ubuntu修改Swap交换空间大小

前言&#xff1a; 安装Ubuntu系统时&#xff0c;选择了默认空间分配方案&#xff0c;Swap空间仅1G&#xff0c;而实际的物理内存有32G&#xff0c;分给Swap空间至少为内存的1倍&#xff0c;最好是内存值的2倍&#xff0c;系统相当卡顿&#xff0c;重做系统后&#xff0c;费力部…...

SpringBoot 知识图谱

预警:本文非常长,建议先 mark 后看,也许是最后一次写这么长的文章说明:前面有 4 个小节关于 Spring 的基础知识,分别是:IOC 容器、JavaConfig、事件监听、SpringFactoriesLoader 详解,它们占据了本文的大部分内容,虽然它们之间可能没有太多的联系,但这些知识对于理解 …...

智谱开源新一代GLM模型,全面布局AI智能体生态

2024年4月15日&#xff0c;智谱在中关村论坛上正式发布了全球首个集深度研究与实际操作能力于一体的AI智能体——AutoGLM沉思。这一革命性技术的发布标志着智谱在AGI&#xff08;通用人工智能&#xff09;领域的又一次重要突破。智谱的最新模型不仅推动了AI智能体技术的升级&am…...

一文读懂Python之numpy模块(34)

一、模块简介 numpy是Python语言中做科学计算的基础库&#xff0c;重在于数值计算&#xff0c;有一个强大的N维数组对象Array&#xff0c;同时NumPy 提供了大量的库函数和操作&#xff0c;可以帮助程序员轻松地进行Array数值计算。 numpy在数据分析和机器学习领域被广泛使用。…...

Lora 微调自定义device_map

Lora 微调自定义device_map 首先查看模型权重参数配置model.safetensors.index.json 查看多少解码器 这里的layer可以理解为解码器层,后面有qkv,bais,layernomal等 # 显卡数量 num_gpus = 5 # 总层数 num_layers = 28layers_per_gpu = num_layers // num...

二叉树的顺序结构及实现

一.二叉树的顺序结构 二.堆的概念及结构 三.堆的实现 一.二叉树的顺序结构 普通的二叉树是不适合用数组来存储的&#xff0c;因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆 ( 一种二叉树 ) 使用顺序结构的数组来存储。 二.堆的概念…...

python生成项目依赖文件requirements.txt

文章目录 通过pip freeze去生成通过pipreqs去生成 通过pip freeze去生成 pip freeze > requirements.txt会将整个python的Interceptor的环境下lib包下所有的依赖都生成到这个文件当中&#xff0c;取决于我们使用的python的版本下所有的安装包。不建议使用这种方式&#xff…...

Cribl 对Windows-xml log 进行 -flatten-03

The Flatten Function Description​ The Flatten Function is used to flatten fields out of a nested structure. Lets flatten the _raw JSON object, to further reduce the events size before we send it to the intended destination(s). Steps – Adding a Flatten…...

Java优雅实现判空方法

在 Java 开发中&#xff0c;频繁的 if (obj ! null) 判空代码会导致代码冗余、可读性差&#xff0c;且容易遗漏判空导致 NullPointerException。以下从 语言特性、设计模式、工具类 和 编码规范 四个维度&#xff0c;结合实际案例&#xff0c;详解如何优雅处理空值问题。 一、…...

leetcode 1035. Uncrossed Lines

题目描述 本题本质上就是求nums1和nums2的最长公共子序列的长度。因此本题本质上与第1143题一模一样。 代码&#xff1a; class Solution { public:int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) {//本题等价于求nums1和nums2的最长公…...

windows上部署本地知识库(RAG)ollama + docker + ragflow方案

一、部署ollama 如何部署本地部署ollama参照我另一篇博客:Windows安装ollama部署本地大模型_ollama 在哪里运行的大模型-CSDN博客 二、部署docker 1、下载docker: 下载地址: Docker: Accelerated Container Application Development 2、winds(winds11)安装或者更新ws…...

多Agent框架及协作机制详解

文章目录 一、多智能体系统介绍1.1 多智能体系统定义1.2 多智能体协作1.3 协作类型1.4 协作策略1.5 通信结构1.6 协调与编排 1.3 多智能体与单智能体对比1.4 应用场景 二、多Agent开发框架AutoGenMetaGPTLangGraphSwarmCrewAI 三、多智能体协作方式3.1 MetaGPT&#xff1a;SOP驱…...

Cribl 对Windows-xml log 进行 -Removing filed-06

Removing Fields Description​ The Eval Function can be used to add or remove fields. In this example we will remove the extracted fields while preserving _raw, _time,index,source, sourcetype. Steps - Adding an Eval Function...

Linux 常用指令用户手册

Linux 常用指令用户手册 适合新手入门 & 日常速查 目录 基础操作文件与目录管理权限与所有权文本处理压缩与解压系统监控网络操作进程管理实用小技巧 1. 基础操作 1.1 查看系统信息 # 查看内核版本 uname -a# 查看系统发行版信息&#xff08;适用于 Debian/Ubuntu&…...

Java EE(20)——线程安全——ThreadLocal

1.前言 在面的线程安全相关的博文中&#xff0c;解决线程安全问题的方法主要使用synchronized和volatile两个关键字。引发线程安全问题的根本原因是多个线程同时对共享变量进行写操作&#xff0c;而上述两个关键字并没有改变"多个线程写同一个变量"这个情况。以sync…...

树莓派超全系列教程文档--(36)树莓派条件过滤器设置

树莓派条件过滤器设置 条件过滤器[all] 过滤器型号过滤器[none] 过滤器[tryboot] 过滤器[EDID*] 过滤器序列号过滤器GPIO过滤器组合条件过滤器 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 条件过滤器 当将单个 SD 卡&#xff08;或卡图像&am…...

Vue3核心源码解析

/packages/complier-core 定位​​&#xff1a;​​编译时核心​​&#xff0c;处理 Vue 模板的编译逻辑。​​核心功能​​&#xff1a; ​​模板解析​​&#xff1a;将 .vue 文件的模板语法&#xff08;HTML-like&#xff09;解析为 ​​抽象语法树 (AST)​​。​​转换优化…...

JavaScript解密实战指南:从基础到进阶技巧

JavaScript加密技术广泛应用于数据保护、反爬虫和代码混淆&#xff0c;但掌握解密方法能帮助开发者突破技术壁垒。本文结合爬虫实战与安全分析场景&#xff0c;系统梳理JS解密的核心方法与工具。 一、基础解密方法 1. Base64解码 适用于简单编码场景&#xff0c;如Cookie加密…...