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

基于Spring Boot与jQuery的用户管理系统开发实践✨

引言📚

用户管理系统是企业级应用的核心模块,需实现数据分页、状态管理及高效前后端交互。本文以Spring Boot为后端框架、jQuery为前端工具,构建一个结构清晰的用户管理系统,详解三层架构设计、接口规范及全栈开发流程,为全栈开发提供可复用的实践方案。

1. 前后端交互接口设计📡

1.1 核心接口:用户列表分页查询🔌

  • URL/user/getUserInfoList,采用GET请求,通过查询参数传递分页信息。
  • 参数封装PageRequest对象包含currentPage(当前页,默认1)、pageSize(每页条数,默认10)、offset(偏移量,自动计算为(currentPage-1)*pageSize)。
  • 响应格式:统一通过Result对象返回,包含状态码(SUCCESS/FAIL)、分页数据(PageResult)。PageResult封装总记录数(total)、用户列表(userInfoList)及请求参数(pageRequest),示例如下:
    {"status": "SUCCESS","data": {"total": 100,"userInfoList": [{...}, {...}],"pageRequest": {"currentPage": 1, "pageSize": 10}}
    }
    

1.2 设计原则📌

  • 参数校验:在后端Controller层校验currentPage>0pageSize≥1,防止非法参数导致SQL异常。
  • 业务解耦:Service层将数据库字段deleteFlag(0/1)转换为前端友好的deleteStatus(“存在”/“删除”),隔离数据持久化与业务逻辑。

2. 后端:Spring Boot三层架构实现🏗️

2.1 Controller层:请求入口🚪

职责:接收请求、参数校验、调用Service层、封装响应。
代码示例

@RestController
@RequestMapping("/user")
public class UserInfoController {@Autowired private UserInfoService service;@GetMapping("/getUserInfoList")public Result list(PageRequest req) {if (req.getPageSize() < 1 || req.getCurrentPage() <= 0) return Result.fail("参数错误"); // 校验分页参数try {return Result.success(service.queryList(req)); // 调用Service并封装响应} catch (Exception e) {log.error("查询失败:{}", e);return Result.fail("服务器错误");}}
}

关键逻辑

  • 自动绑定前端参数到PageRequest对象,简化解析流程。
  • 使用统一响应工具类Result,确保返回格式一致。

2.2 Service层:业务逻辑核心❤️

职责:实现核心业务(如分页计算、状态转换)、调用Mapper层、事务管理。
代码示例

@Service
public class UserInfoService {@Autowired private UserInfoMapper mapper;public PageResult<UserInfo> queryList(PageRequest req) {if (req == null) return null;int total = mapper.count(); // 查询总记录数List<UserInfo> list = mapper.list(req); // 查询当前页数据// 状态转换:数据库字段转业务描述list.forEach(u -> u.setDeleteStatus(u.getDeleteFlag() == 0 ? "存在" : "删除"));return new PageResult<>(total, list, req); // 封装分页结果}
}

优化点

  • 移除查询方法的@Transactional注解,提升性能(事务仅用于增删改)。
  • 处理空列表为Collections.emptyList(),避免前端空指针异常。

2.3 Mapper层:数据库操作🔧

职责:通过MyBatis实现SQL操作,返回原始数据。
代码示例

@Mapper
public interface UserInfoMapper {@Select("SELECT COUNT(*) FROM normal_user_info")int count(); // 查询总数@Select("SELECT id, user_name, delete_flag FROM normal_user_info " +"ORDER BY id ASC LIMIT #{offset}, #{pageSize}")List<UserInfo> list(PageRequest req); // 分页查询
}

关键技术

  • 使用LIMIT #{offset}, #{pageSize}实现分页,ORDER BY确保数据顺序稳定。
  • MyBatis自动映射数据库字段(如user_nameuserName),简化对象绑定。

3. 前端:jQuery实现数据交互🌐

3.1 静态页面:Bootstrap布局🎨

结构亮点

  • 表格展示用户数据,包含多选框(批量操作)、操作按钮(修改/删除)。
  • 分页组件使用jqPaginator,支持首页、上一页、自定义页码跳转。
<table class="table"><thead><th>选择</th><th>ID</th><th>用户名</th><th>状态</th><th>操作</th></thead><tbody id="userList"></tbody>
</table>
<ul id="pageContainer" class="pagination"></ul>

3.2 JavaScript逻辑:数据渲染与交互💡

3.2.1 获取并渲染用户列表🔄
function loadUsers() {$.get("/user/getUserInfoList" + location.search, (res) => {if (res.status !== "SUCCESS") return alert("失败");const users = res.data.userInfoList;let html = "";users.forEach(user => {html += `<tr><td><input type="checkbox" value="${user.id}"></td><td>${user.id}</td><td>${user.userName}</td><td>${user.deleteStatus}</td><td><button onclick="editUser(${user.id})">修改</button></td></tr>`;});$("#userList").html(html); // 渲染列表initPagination(res.data); // 初始化分页});
}
3.2.2 分页功能实现📊
function initPagination(data) {$("#pageContainer").jqPaginator({totalCounts: data.total, // 总记录数pageSize: data.pageRequest.pageSize, // 每页条数currentPage: data.pageRequest.currentPage, // 当前页onPageChange: (page) => {location.href = `?currentPage=${page}`; // 跳转页码,刷新页面}});
}
3.2.3 交互优化点🔍
  • URL参数持久化:通过location.search保留分页参数,刷新页面后维持当前页。
  • 日期格式化:使用new Date().toLocaleString()统一时间显示格式。

4. 系统优化与扩展方向🚀

4.1 现有优化🔧

  1. 参数校验升级
    • PageRequest类中添加JSR-303注解(如@Min(1)),利用Spring MVC自动校验:
      public class PageRequest {@Min(1) private int currentPage = 1;@Min(1) private int pageSize = 10;// ...
      }
      
  2. 前端安全加固
    • 使用DOMPurify过滤用户输入,防止XSS攻击;后端限制批量操作的ID列表长度,避免SQL注入。

4.2 功能扩展🌟

  • 搜索功能:添加用户名搜索框,后端SQL改为LIKE CONCAT('%', #{keyword}, '%'),前端传递keyword参数。
  • 权限管理:引入角色表(role)和用户角色关联表(user_role),通过@PreAuthorize注解控制接口访问权限。
  • 技术栈升级:前端迁移至Vue/React,采用SPA架构;后端集成Swagger生成接口文档,提升协作效率。

总结📌

本文通过Spring Boot与jQuery实现了一个可落地的用户管理系统,核心优势包括:

  • 三层架构清晰:Controller处理请求,Service封装业务,Mapper专注数据访问,职责分离提升可维护性。
  • 前后端解耦:通过统一接口规范(Result+PageResult)实现低耦合交互,前端专注展示,后端专注逻辑。
  • 分页与状态管理:Service层统一处理状态转换,分页组件提升用户体验,满足企业级数据展示需求。

全栈开发的关键在于理解数据流动与业务逻辑的衔接,未来可进一步探索微服务架构、分布式缓存等技术,持续优化系统性能与扩展性。希望本文能为开发者提供实用的全栈开发思路,助力打造更高效的企业级应用💪!

相关文章:

基于Spring Boot与jQuery的用户管理系统开发实践✨

引言&#x1f4da; 用户管理系统是企业级应用的核心模块&#xff0c;需实现数据分页、状态管理及高效前后端交互。本文以Spring Boot为后端框架、jQuery为前端工具&#xff0c;构建一个结构清晰的用户管理系统&#xff0c;详解三层架构设计、接口规范及全栈开发流程&#xff0…...

StreamSaver实现大文件下载解决方案

StreamSaver实现大文件下载解决方案 web端 安装 StreamSaver.js npm install streamsaver # 或 yarn add streamsaver在 Vue 组件中导入 import streamSaver from "streamsaver"; // 确保导入名称正确完整代码修正 <!--* projectName: * desc: * author: dua…...

vue3+echarts 做温度计

参考Echarts 做的温度计_echart温度计-CSDN博客 但是现在这个写法不支持了&#xff0c;更新一下&#xff0c;然后修改了温度值和刻度及单位颜色为黑&#xff0c;初始化echarts写法, itemStyle: {normal: {color: #4577BA,barBorderRadius: 50,}},<div id"main14"…...

鸿蒙开发——7.ArkUI进阶:@BuilderParam装饰器的核心用法与实战解析

鸿蒙开发——7.ArkUI进阶&#xff1a;BuilderParam装饰器的核心用法与实战解析 ArkUI进阶&#xff1a;BuilderParam装饰器的核心用法与实战解析引言一、核心概念速览1.1 什么是BuilderParam&#xff1f;1.2 与Builder的关系 二、核心使用场景2.1 参数初始化组件2.2 尾随闭包初始…...

【数据结构】队列的完整实现

队列的完整实现 队列的完整实现github地址前言1. 队列的概念及其结构1.1 概念1.2 组织结构 2. 队列的实现接口一览结构定义与架构初始化和销毁入队和出队取队头队尾数据获取size和判空 完整代码与功能测试结语 队列的完整实现 github地址 有梦想的电信狗 前言 ​ 队列&…...

销售易史彦泽:从效率工具到增长引擎,AI加速CRM不断进化

导读&#xff1a;AI的加入&#xff0c;让CRM实现从“人适配系统”到“系统适配人”&#xff0c;从“管控工具”向“智能助手”跃迁&#xff0c;重构客户关系管理的底层逻辑。 作者 | 小葳 图片来源 | 摄图 AI应用与SaaS的关系&#xff0c;是当前科技与商业领域热议的话题。 当…...

开疆智能Profinet转ModbusTCP网关连接BORUNTE伯朗特系统配置案例

本案例是通过开疆智能Profinet转ModbusTCP网关将西门子PLC与BORUNTE机器人连接的配置案例。具体配置方法如下。 配置过程 Profinet设置 设置网关在Profinet一侧的参数包括&#xff08;设备名称&#xff0c;IP地址等&#xff09; 先导入GSD文件 选择GSD所在文件夹位置&#…...

从0到1搭建shopee测评自养号系统:独立IP+硬件伪装+养号周期管理​

在跨境电商竞争白热化的背景下&#xff0c;Shopee卖家通过自养号测评实现流量与销量突破已成为行业共识。自养号测评通过模拟真实买家行为&#xff0c;为店铺注入精准流量&#xff0c;同时规避外包测评的高风险与不可控性。本文将从技术架构、运营策略、风险控制三个维度&#…...

arrow-0.1.0.jar 使用教程 - Java jar包运行方法 命令行启动步骤 常见问题解决

准备工作 首先确保你电脑上装了Java环境&#xff08;JDK 8或以上版本&#xff09; 把这个jar文件下载到你的电脑上&#xff0c;arrow-0.1.0.jar下载链接&#xff1a;https://pan.quark.cn/s/66d7c061c95a 运行方法 打开命令行&#xff08;Windows按WinR输入cmd&#xff0c;M…...

请问交换机和路由器的区别?vlan 和 VPN 是什么?

交换机和路由器的区别 特性交换机&#xff08;Switch&#xff09;路由器&#xff08;Router&#xff09;工作层级数据链路层&#xff08;L2&#xff0c;基于MAC地址&#xff09;网络层&#xff08;L3&#xff0c;基于IP地址&#xff09;主要功能在局域网&#xff08;LAN&#…...

如何查看与设置电脑静态IP地址:完整指南

在当今数字化时代&#xff0c;稳定的网络连接已成为工作生活的必需品。静态IP地址作为网络配置中的重要一环&#xff0c;相比动态IP具有更高的稳定性和可控性&#xff0c;然而&#xff0c;许多用户对如何查看和设置静态IP地址仍感到困惑。本文将为您提供从基础概念到实操步骤的…...

Linux网络基础全面解析:从协议分层到局域网通信原理

Linux系列 文章目录 Linux系列前言一、计算机网络背景1.1 认识网络1.2 认识协议 二、网络协议初识2.1 协议分层2.2 OSI七层模型2.3 TCP/IP协议栈2.4 网络协议栈与OS的关系2.5 网络协议在网络传输时的作用 三、网络通信局域网通信的安全隐患与应对总结 前言 Linux系统部分的学习…...

第二篇:服务与需求——让用户找到并预订服务

目录 1 服务类目与项目管理&#xff1a;飞书多维表格为管理中心&#xff0c;微搭小程序展示1.1 需求分析1.2 数据模型&#xff1a;微搭中的服务分类与服务项目&#xff08;用于小程序展示&#xff09;1.3 数据模型&#xff1a;多维表格中的服务分类与服务项目 总结 我们已经用了…...

【AI News | 20250520】每日AI进展

AI Repos 1、nanoDeepResearch nanoDeepResearch 是一个受 ByteDance 的 DeerFlow 项目启发&#xff0c;旨在从零开始构建深度研究代理的后端项目。它不依赖 LangGraph 等现有框架&#xff0c;通过实现一个 ReAct 代理和状态机来模拟 Deep Research 的工作流程。项目主要包含规…...

Spark Core基础与源码剖析全景手册

Spark Core基础与源码剖析全景手册 Spark作为大数据领域的明星计算引擎&#xff0c;其核心原理、源码实现与调优方法一直是面试和实战中的高频考点。本文将系统梳理Spark Core与Hadoop生态的关系、经典案例、聚合与分区优化、算子底层原理、集群架构和源码剖析&#xff0c;结合…...

抖音视频如何下载保存?高清无水印一键保存到手机!

你是不是经常在抖音上刷到超有趣的短视频&#xff0c;想保存下来却不知道怎么做&#xff1f;或者下载后发现带有烦人的水印&#xff1f;别担心&#xff01;今天教你最简单、最快速的抖音视频下载方法&#xff0c;无水印、高清画质&#xff0c;轻松搞定&#xff01; 为什么要下…...

SCAU--平衡树

3 平衡树 Time Limit:1000MS Memory Limit:65535K 题型: 编程题 语言: G;GCC;VC;JAVA;PYTHON 描述 平衡树并不是平衡二叉排序树。 这里的平衡指的是左右子树的权值和差距尽可能的小。 给出n个结点二叉树的中序序列w[1],w[2],…,w[n]&#xff0c;请构造平衡树&#xff0c…...

图的几种存储方法比较:二维矩阵、邻接表与链式前向星

图是一种非常重要的非线性数据结构&#xff0c;广泛应用于社交网络、路径规划、网络拓扑等领域。在计算机中表示和存储图结构有多种方法&#xff0c;本文将详细分析三种常见的存储方式&#xff1a;二维矩阵&#xff08;邻接矩阵&#xff09;、邻接表和链式前向星&#xff0c;比…...

【AS32X601驱动系列教程】MCU启动详解

在嵌入式开发领域&#xff0c;掌握MCU&#xff08;微控制单元&#xff09;的启动流程是工程师们迈向深入开发的关键一步。本文将带您深入了解MCU启动的奥秘&#xff0c;从编译过程到启动文件&#xff0c;再到链接脚本和系统时钟配置&#xff0c;全方位解析MCU启动流程。 在实际…...

计算机视觉与深度学习 | Matlab实现EMD-GWO-SVR、EMD-SVR、GWO-SVR、SVR时间序列预测(完整源码和数据)

以下是一个完整的Matlab时间序列预测实现方案,包含EMD-GWO-SVR、EMD-SVR、GWO-SVR和SVR四种方法的对比。代码包含数据生成、信号分解、优化算法和预测模型实现。 %% 主程序:时间序列预测对比实验 clc; clear; clearvars; close all;% 生成模拟时间序列数据 rng(1); % 固定随…...

Visual Studio 2022 插件推荐

Visual Studio 2022 插件推荐 Visual Studio 2022 (简称 VS2022) 是一款强大的 IDE&#xff0c;适合各类系统组件、框架和应用的开发。插件是接入 VS2022 最重要的扩展方式之一&#xff0c;它们可以大幅提升开发效率、优化代码质量&#xff0c;并提供强大的调试和分析功能。 …...

[luogu12541] [APIO2025] Hack! - 交互 - 构造 - 数论 - BSGS

传送门&#xff1a;https://www.luogu.com.cn/problem/P12541 题目大意&#xff1a;有一个数 n n n&#xff0c;你不知道是多少&#xff1b;你每次可以向交互库询问一个正整数集合 A A A&#xff08;其中元素互不相同&#xff09;&#xff0c;交互库返回&#xff1a;将集合中…...

openjdk底层(hotspot)汇编指令调用(五)——内存访问

根据前面关于aarch64架构下的编码解释可知&#xff0c;在src\hotspot\cpu\架构文件夹下&#xff0c; assembler_xx.hpp assembler_xx.cpp register_xx.hpp register_xx.cpp register_definitions_xx.cpp这些文件是有关寄存器定义以及汇编编码函数实现的文件。 对于前述的ope…...

几款常用的虚拟串口模拟器

几款常用的虚拟串口模拟器&#xff08;Virtual Serial Port Emulator&#xff09;&#xff0c;适用于 Windows 系统&#xff0c;可用于开发和调试串口通信应用&#xff1a; 1. com0com (开源免费) 特点&#xff1a; 完全开源免费&#xff0c;无功能限制。 可创建多个虚拟串口…...

ChimeraX介绍

UCSF ChimeraX 是一款由美国加州大学旧金山分校(UCSF)开发的下一代分子可视化软件,是经典的 UCSF Chimera 的继任者。它集成了强大的分子结构可视化、分析、建模和动画功能,广泛应用于结构生物学、药物设计、分子建模等领域。 1. 下载安装: Download UCSF ChimeraX 2. …...

【Linux】初见,基础指令

前言 本文将讲解Linux中最基础的东西-----指令&#xff0c;带大家了解一下Linux中有哪些基础指令&#xff0c;分别有什么作用。 本文中的指令和选项并不全&#xff0c;只介绍较为常用的 pwd指令 语法&#xff1a;pwd 功能&#xff1a;显示当前所在位置&#xff08;路径&#xf…...

链表的面试题8之环形链表

许久不见&#xff0c;那么这是最后倒数第三题了&#xff0c;这道题我们来看一下环形链表。 老规矩贴链接&#xff1a;141. 环形链表 - 力扣&#xff08;LeetCode&#xff09; 目录 倒数第k个元素 获取中间元素的问题。 双指针 来&#xff0c;大致看一下题目&#xff0c;这…...

OBS Studio:windows免费开源的直播与录屏软件

OBS Studio是一款免费、开源且跨平台的直播与录屏软件。其支持 Windows、macOS 和 Linux。OBS适用于&#xff0c;有直播需求的人群或录屏需求的人群。 Stars 数64,323Forks 数8413 主要特点 推流&#xff1a;OBS Studio 支持将视频实时推流至多个平台&#xff0c;如 YouTube、…...

邂逅Node.js

首先先要来学习一下nodejs的基础&#xff08;和后端开发有联系的&#xff09; 再然后的学习路线是学习npm&#xff0c;yarn&#xff0c;cnpm&#xff0c;npx&#xff0c;pnpm等包管理工具 然后进行模块化的使用&#xff0c;再去学习webpack和git&#xff08;版本控制工具&…...

React 常见的陷阱之(如异步访问事件对象)

文章目录 前言1. 异步访问事件对象问题解决方案 2. 事件传播的误解**问题**解决方案 **3. 事件监听器未正确卸载****问题****解决方案** **4. 动态列表中的事件绑定****问题****解决方案** **5. 第三方库与 React 事件冲突****问题****解决方案** **6. 表单输入与受控组件****问…...

【LinkedList demo 内部类讲说】

LinkedList demo 内部类讲说 1. Node节点2.MyLinkedList3. LinkedListTest 测试类 1. Node节点 public class Node<T> {private Node<T> pre;private Node<T> next;private T data;public Node() {}public Node getPre() {return pre;}public void setPre(N…...

Sql刷题日志(day9)

一、笔试 1、limit offset&#xff1a;分页查询 SELECT column1, column2, ... FROM table_name LIMIT number_of_rows OFFSET start_row; --跳过前 start_row 行&#xff0c;返回接下来的 number_of_rows 行。 2、lag、lead&#xff1a;查询前后行数据 --lag函数用于访问当…...

46 python pandas

Pandas是Python数据分析的利器,也是各种数据建模的标准工具 一、什么是pandas pandas 是 Python 中用于数据处理和分析的核心库,提供了高效的数据结构(如Series和DataFrame)和数据操作工具,广泛应用于数据清洗、分析、可视化等场景。 最常用的是用来处理excel数据。 二…...

告别延迟!Ethernetip转modbustcp网关在熔炼车间监控的极速时代

熔炼车间热火朝天&#xff0c;巨大的热风炉发出隆隆的轰鸣声&#xff0c;我作为一名技术操控工&#xff0c;正密切关注着监控系统上跳动的各项参数。这套基于EtherNET/ip的监控系统&#xff0c;是我们车间数字化改造的核心&#xff0c;它将原本分散的控制单元整合在一起&#x…...

Prompt Tuning:高效微调大模型的新利器

Prompt Tuning(提示调优)是什么 Prompt Tuning(提示调优) 是大模型参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)的重要技术之一,其核心思想是通过优化 连续的提示向量(而非整个模型参数)来适配特定任务。以下是关于 Prompt Tuning 的详细解析: 一、核心概念…...

⼆叉搜索树详解

1. ⼆叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树&#xff0c;它或者是⼀棵空树&#xff0c;或者是具有以下性质的⼆叉树: • 若它的左⼦树不为空&#xff0c;则左⼦树上所有结点的值都⼩于等于根结点的值 • 若它的右⼦树不为空&#xff0c;则右⼦树上所有结点的值都⼤于等于根结…...

CompleteableFuture的异步任务编排

为什么会有CompleteableFuture Java 的 1.5 版本引入了 Future&#xff0c;可以把它简单的理解为运算结果的占位符&#xff0c; 它提供了两个方法来获取运算结果。 get()&#xff1a;调用该方法线程将会无限期等待运算结果。get(longmeout, TimeUnit unit)&#xff1a;调用该…...

珈和科技贺李德仁院士荣膺国际数字地球学会会士:以时空智能赋能可持续发展目标 绘就数字地球未来蓝图

4月22日&#xff0c;第十四届国际数字地球会议在重庆盛大启幕。在这场在全球范围内数字地球领域具有国际影响力的学术盛会上&#xff0c;国际数字地球学会向珈和科技的企业顾问&#xff0c;2023年度国家最高科学技术奖得主李德仁院士授予了“国际数字地球学会会士”最高荣誉称号…...

【CodeBuddy 】从0到1,打造一个“牛马打鸡血仪”

【CodeBuddy 】从0到1&#xff0c;打造一个“牛马打鸡血仪” 我正在参加CodeBuddy「首席试玩官」内容创作大赛&#xff0c;本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 &#x1f31f;嗨&#xff0c;我是LucianaiB&#…...

BI是什么意思?一文讲清BI的概念与应用!

目录 一、BI 是什么意思 1. BI 的定义 2. BI 的发展历程 3. BI 的核心组件 二、BI 的应用场景 1. 销售与市场营销 2. 财务管理 ​编辑3. 人力资源管理 4. 生产与运营管理 ​编辑三、选择合适的 BI 工具 1. 考虑企业的需求和规模 2. 评估工具的功能和性能 3. 关注工…...

可编辑PPT | 华为安全架构设计方法指南华为数字化转型架构解决方案

这份文档是华为的安全架构设计方法指南&#xff0c;它详细介绍了安全架构设计的重要性、方法和流程。文档强调安全架构是软件研发技术体系中的关键DFX能力&#xff0c;与可靠性、性能等并列&#xff0c;尤其在云计算和复杂网络环境下&#xff0c;安全性设计显得尤为重要。华为的…...

1.6 提示词工程(二)

目录 3.2 提供参考文本 3.2.1 使用参考文本来构建答案​ 3.2.2 指导模型用引用的文本回答问题​ 3.3 把复杂的任务拆分成简单的子任务​ 3.3.1 利用意图分类确定与用户查询最相关的指令​ 3.3.2 针对需要长时间对话的应用程序&#xff0c;应概括或过滤之前的对话内容​ …...

WIFI信号状态信息 CSI 深度学习之数据集

Building occupant activity sensing dataset based on WIFI CSI&#xff08;WiSA&#xff09; 所有的数据以及实验参数都上传到了figshare中并配备详细说明&#xff0c;供参考。 论文链接&#xff1a;WiSA: Privacy-enhanced WiFi-based activity intensity recognition in …...

基于服务器的 DPI 深度分析解决方案

一、传统网络流量分析的瓶颈与挑战 在企业网络管理体系中&#xff0c;传统流量分析模式高度依赖网络设备作为数据采集核心节点&#xff0c;无论是基于 NetFlow/IPFIX 等流协议的流量分析&#xff0c;还是通过端口镜像技术实现的流量监控&#xff0c;均以交换机、路由器等网络设…...

动态规划(5):线性动态规划

引言 所谓线性动态规划,通常指状态定义和转移具有线性结构的动态规划问题,其状态通常可以用一维数组表示,状态转移主要依赖于相邻或前面有限个状态。这类问题的特点是状态空间呈线性排列,每个状态只与有限个前置状态相关,使得问题结构相对简单,更容易理解和掌握。 一维…...

c语言- 如何构建CMake项目(Linux/VSCode)

目录 linux&#xff08;vscode&#xff09;构建C语言CMake项目 1. 检查linux是否下载cmake&#xff0c;否则执行下列代码 2. 在vscode下载cmake的插件CMake Tools 3. 构建项目&#xff08;项目结构&#xff09; 4. 进行cmake配置 1. 在VS Code中按下ctrl shift p键&…...

HJ17 坐标移动【牛客网】

文章目录 零、原题链接一、题目描述二、测试用例三、解题思路四、参考代码 零、原题链接 HJ17 坐标移动 一、题目描述 二、测试用例 三、解题思路 基本思路&#xff1a;   这题的难点在于理解题目和如何处理各种情况。题目是给定一串指令&#xff0c;首先要判断指令是否合法…...

HGHAC集群滚动扩展或更换硬盘设备

文章目录 环境文档用途详细信息 环境 系统平台&#xff1a;N/A 版本&#xff1a;4.5.8 文档用途 集群版本&#xff1a;hghac4.2.1 数据库版本&#xff1a;hgdb-see-4.5.8 此步骤适用于所有hac架构的hgdb集群。 主要用途&#xff1a;HAC集群服务器滚动扩展或更换硬盘 本文…...

虚拟环境中VSCode运行jupyter文件

用VS Code打开jupyter文件&#xff0c;点击右上角 Select Kernel 在正上方会出现这个选择框&#xff0c;选择 Python Environment 会出来所有的虚拟环境&#xff0c;选择要用的环境行...

【蓝桥杯嵌入式】【模块】六、PWM相关配置及代码模板

1. 前言 最近在准备16届的蓝桥杯嵌入式赛道的国赛&#xff0c;打算出一个系列的博客&#xff0c;记录STM32G431RBT6这块比赛用板上所有模块可能涉及到的所有考点&#xff0c;如果有错误或者遗漏欢迎各位大佬斧正。 本系列博客会分为以下两大类&#xff1a; 1.1. 单独模块的讲…...