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

Spring MVC深度解析:从原理到实战

文章目录

    • 一、Spring MVC概述
      • 1.1 MVC设计模式
      • 1.2 Spring MVC特点
    • 二、Spring MVC核心组件
      • 2.1 架构流程图解
      • 2.2 核心组件说明
    • 三、环境搭建与配置
      • 3.1 Maven依赖
      • 3.2 传统XML配置 vs JavaConfig
    • 四、控制器开发实践
      • 4.1 基础控制器示例
      • 4.2 请求映射注解
    • 五、数据处理与绑定
      • 5.1 表单处理示例
      • 5.2 数据验证
    • 六、视图技术集成
      • 6.1 Thymeleaf配置
      • 6.2 JSP视图示例
    • 七、RESTful API开发
      • 7.1 REST控制器
    • 八、高级特性
      • 8.1 拦截器实现
      • 8.2 全局异常处理
    • 九、最佳实践建议
    • 十、常见问题排查

在这里插入图片描述

一、Spring MVC概述

1.1 MVC设计模式

MVC(Model-View-Controller)是一种经典的软件架构模式,将应用程序分为三个核心组件:

  • Model:数据模型,负责业务逻辑和数据管理
  • View:视图层,负责数据展示
  • Controller:控制器,处理用户请求并协调Model和View

1.2 Spring MVC特点

  • 基于DispatcherServlet的前端控制器模式
  • 灵活的配置方式(注解驱动)
  • 强大的数据绑定和验证机制
  • 支持多种视图技术(JSP、Thymeleaf等)
  • 与Spring框架无缝集成

二、Spring MVC核心组件

2.1 架构流程图解

[客户端] --> [DispatcherServlet] --> [HandlerMapping]--> [Controller] --> [ModelAndView]--> [ViewResolver]--> [视图]

2.2 核心组件说明

  • DispatcherServlet:前端控制器,统一处理请求
  • HandlerMapping:请求到处理器的映射
  • Controller:业务逻辑处理器
  • ViewResolver:视图解析器
  • HandlerAdapter:处理器适配器
  • Model:数据模型容器

三、环境搭建与配置

3.1 Maven依赖

<dependencies><!-- Spring MVC --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.3.20</version></dependency><!-- Servlet API --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency>
</dependencies>

3.2 传统XML配置 vs JavaConfig

XML配置示例:

<!-- web.xml -->
<servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring-mvc.xml</param-value></init-param>
</servlet>

JavaConfig实现:

@Configuration
@EnableWebMvc
@ComponentScan("com.example.controller")
public class WebConfig implements WebMvcConfigurer {@Beanpublic ViewResolver viewResolver() {InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/WEB-INF/views/");resolver.setSuffix(".jsp");return resolver;}
}

四、控制器开发实践

4.1 基础控制器示例

@Controller
@RequestMapping("/user")
public class UserController {@GetMapping("/profile")public String showProfile(Model model) {User user = userService.getCurrentUser();model.addAttribute("user", user);return "profile";}@PostMapping("/update")public String updateProfile(@Valid UserForm form, BindingResult result) {if (result.hasErrors()) {return "edit-profile";}userService.updateUser(form);return "redirect:/user/profile";}
}

4.2 请求映射注解

  • @RequestMapping:通用请求映射
  • @GetMapping/@PostMapping:特定HTTP方法映射
  • @PathVariable:URL模板变量
  • @RequestParam:请求参数绑定
@GetMapping("/articles/{id}")
public String getArticle(@PathVariable Long id,@RequestParam(defaultValue = "desc") String sort,Model model) {// 业务逻辑return "article-detail";
}

在这里插入图片描述

五、数据处理与绑定

5.1 表单处理示例

@Controller
@RequestMapping("/product")
public class ProductController {@GetMapping("/create")public String showForm(Model model) {model.addAttribute("product", new Product());return "product-form";}@PostMapping("/save")public String saveProduct(@ModelAttribute("product") Product product,BindingResult result) {if (result.hasErrors()) {return "product-form";}productService.save(product);return "redirect:/product/list";}
}

5.2 数据验证

public class Product {@NotBlank(message = "产品名称不能为空")@Size(max = 50, message = "名称长度不能超过50字符")private String name;@Min(value = 0, message = "价格不能为负数")private BigDecimal price;// getters/setters
}

六、视图技术集成

6.1 Thymeleaf配置

@Configuration
@EnableWebMvc
public class ThymeleafConfig {@Beanpublic SpringResourceTemplateResolver templateResolver() {SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();resolver.setPrefix("/WEB-INF/views/");resolver.setSuffix(".html");resolver.setTemplateMode("HTML5");resolver.setCharacterEncoding("UTF-8");return resolver;}@Beanpublic SpringTemplateEngine templateEngine() {SpringTemplateEngine engine = new SpringTemplateEngine();engine.setTemplateResolver(templateResolver());return engine;}
}

6.2 JSP视图示例

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>用户列表</title>
</head>
<body><h2>用户列表</h2><table><tr><th>ID</th><th>用户名</th><th>邮箱</th></tr><c:forEach items="${users}" var="user"><tr><td>${user.id}</td><td>${user.username}</td><td>${user.email}</td></tr></c:forEach></table>
</body>
</html>

七、RESTful API开发

在这里插入图片描述

7.1 REST控制器

@RestController
@RequestMapping("/api/users")
public class UserApiController {@Autowiredprivate UserService userService;@GetMappingpublic ResponseEntity<List<User>> getAllUsers() {return ResponseEntity.ok(userService.findAll());}@GetMapping("/{id}")public ResponseEntity<User> getUserById(@PathVariable Long id) {return userService.findById(id).map(ResponseEntity::ok).orElse(ResponseEntity.notFound().build());}@PostMappingpublic ResponseEntity<User> createUser(@RequestBody @Valid User user) {User savedUser = userService.save(user);return ResponseEntity.created(URI.create("/api/users/" + savedUser.getId())).body(savedUser);}
}

在这里插入图片描述

八、高级特性

在这里插入图片描述

8.1 拦截器实现

public class AuthInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object handler) throws Exception {if (request.getSession().getAttribute("user") == null) {response.sendRedirect("/login");return false;}return true;}
}// 注册拦截器
@Configuration
public class WebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new AuthInterceptor()).addPathPatterns("/**").excludePathPatterns("/login", "/register");}
}

8.2 全局异常处理

@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(ResourceNotFoundException.class)public ResponseEntity<ErrorResponse> handleNotFound(ResourceNotFoundException ex) {ErrorResponse error = new ErrorResponse();error.setTimestamp(LocalDateTime.now());error.setStatus(HttpStatus.NOT_FOUND.value());error.setMessage(ex.getMessage());return new ResponseEntity<>(error, HttpStatus.NOT_FOUND);}@ExceptionHandler(MethodArgumentNotValidException.class)public ResponseEntity<ErrorResponse> handleValidationException(MethodArgumentNotValidException ex) {List<String> errors = ex.getBindingResult().getFieldErrors().stream().map(FieldError::getDefaultMessage).collect(Collectors.toList());ErrorResponse error = new ErrorResponse();error.setStatus(HttpStatus.BAD_REQUEST.value());error.setMessage("Validation failed");error.setDetails(errors);return new ResponseEntity<>(error, HttpStatus.BAD_REQUEST);}
}

九、最佳实践建议

  1. 遵循分层架构原则:

    • Controller层保持精简
    • 业务逻辑放在Service层
    • 数据访问使用Repository模式
  2. 使用DTO进行数据传输:

    public class UserDTO {private String username;private String email;// 省略getter/setter
    }@PostMapping
    public ResponseEntity<User> createUser(@RequestBody UserDTO dto) {User user = userConverter.convertToEntity(dto);// ...
    }
    
  3. 性能优化建议:

    • 合理使用缓存(@Cacheable)
    • 启用GZIP压缩
    • 异步处理(@Async)
  4. 安全注意事项:

    • 使用CSRF保护
    • 输入验证和输出编码
    • 参数化查询防止SQL注入

十、常见问题排查

  1. 404错误排查步骤:

    • 检查@RequestMapping注解路径
    • 确认视图解析器配置
    • 查看组件扫描范围
  2. 数据绑定失败处理:

    • 检查字段名称是否匹配
    • 验证数据类型是否兼容
    • 使用@InitBinder进行自定义绑定
  3. 性能问题分析:

    • 使用Spring Actuator监控端点
    • 分析数据库查询性能
    • 检查视图渲染时间

相关文章:

Spring MVC深度解析:从原理到实战

文章目录 一、Spring MVC概述1.1 MVC设计模式1.2 Spring MVC特点 二、Spring MVC核心组件2.1 架构流程图解2.2 核心组件说明 三、环境搭建与配置3.1 Maven依赖3.2 传统XML配置 vs JavaConfig 四、控制器开发实践4.1 基础控制器示例4.2 请求映射注解 五、数据处理与绑定5.1 表单…...

Spark学习全总结

基础概念&#xff1a; Spark 是一个快速、通用的大数据处理引擎&#xff0c;支持多种计算模式&#xff0c;如批处理、流处理、交互式查询和机器学习等。 特点: 速度快&#xff1a;基于内存计算&#xff0c;能将数据缓存在内存中&#xff0c;避免频繁读写磁盘&#xff0c;大幅…...

pytorch写张量pt文件,libtorch读张量pt文件

直接在pytorch中&#xff0c;用torch.save保存的张量&#xff0c;可能因格式差异无法在C中加载。 以下是一个最简单的例子&#xff0c;展示如何在 Pytorch中保存张量到 TorchScript 模块&#xff0c;并在 C 中使用 LibTorch 加载。 Python 代码 (save_tensor.py) import torc…...

关于Android Studio的Gradle各项配置2

好的&#xff01;你提到的这些文件是 Gradle 构建系统 和 Android 项目 中非常重要的一部分&#xff0c;它们各自有不同的作用&#xff0c;涉及项目的构建配置、Gradle 环境、系统配置等方面。接下来我会为你详细解释每个文件的作用&#xff0c;并提供具体的例子和注释。 1. gr…...

Android Studio中创建第一个Flutter项目

一、Flutter环境验证 创建Flutter项目之前需要验证是否有Flutter环境&#xff0c;如没有Flutter 环境&#xff0c;请参考配置Flutter开发环境 1.1、flutter doctor 验证通过会有以下提示 [√] Flutter (Channel stable, 3.29.3, on Microsoft Windows [版本 10.0.19045.573…...

Linux的例行性工作(crontab)

crontab服务 at 命令是在指定的时间只能执行一次任务, crontab 命令可以循环重复的执行定时任务,与 Windows 中的计划任务有些类似 crond 是 Linux 下用来周期地执行某种任务或等待处理某些事件的一个守护进程&#xff0c;在安装完成操 作系统后&#xff0c;默认会安装 crond …...

03 基于 STM32 的温度控制系统

前言 Protues、KeilC 设计内容&#xff1a;使用STM32设计一个空调温度的显示控制系统 设计要求&#xff1a; 1.温度显示范围为16-30摄氏度 2.按键K1实现显示温度加1&#xff0c;按键K2实现显示温度减1&#xff0c;低于16或高于30&#xff0c;显示数值不变 3.正常按键蜂鸣器响一…...

23种设计模式-行为型模式之备忘录模式(Java版本)

Java 备忘录模式&#xff08;Memento Pattern&#xff09;详解 &#x1f9e0; 什么是备忘录模式&#xff1f; 备忘录模式是一种行为型设计模式&#xff0c;它允许在不暴露对象实现细节的情况下&#xff0c;保存和恢复对象的状态。备忘录模式常常用于需要记录对象状态以便随时…...

[三分钟]web自动化测试(二):selenium自动化测试常用函数(上)

文章目录 1.元素定位1.1 cssSelector(选择器)1.2 xpath1.3小示例 2.操作测试对象2.1点击/提交对象-click()2.2 模拟按键输入-sendKeys("")2.3 清除文本内容-clear()2.4 获取文本信息-getText()2.5 获取当前页面标题-getTitle()2.6获取当前页面URL-getCurrentUrl() 3.…...

基于ruoyi-plus实现AI聊天和绘画

项目介绍 基于ruoyi-plus实现AI聊天和绘画功能&#xff0c;打造自己的AI平台。前后端分离&#xff0c;有管理后台&#xff0c;用户端&#xff0c;小程序端。支持对接openai&#xff0c;讯飞星火&#xff0c;通义灵码&#xff0c;deepseek等大语言模型。项目架构 管理后台-前端&…...

假设检验学习总结

目录 一、假设检验1. 两种错误2. z检验和t检验3. t检验3.1 单样本t检验3.2 配对样本t检验3.3 独立样本t检验4 方差齐性检验备注卡方检验样本容量的计算AB测试主要的两种应用场景绝对量的计算公式率的计算公式说明一、假设检验 1. 两种错误 第一类错误 原假设为真,却拒绝了原假…...

C++ 基于多设计模式下的同步异步⽇志系统-2项目实现

⽇志系统框架设计 1.⽇志等级模块:对输出⽇志的等级进⾏划分&#xff0c;以便于控制⽇志的输出&#xff0c;并提供等级枚举转字符串功能。 ◦ OFF&#xff1a;关闭 ◦ DEBUG&#xff1a;调试&#xff0c;调试时的关键信息输出。 ◦ INFO&#xff1a;提⽰&#xff0c;普通的提⽰…...

Tauri窗口与界面管理:打造专业桌面应用体验 (入门系列五)

窗口管理是桌面应用的核心特性之一&#xff0c;良好的窗口管理可以显著提升用户体验。在Web开发中&#xff0c;我们通常被限制在浏览器窗口内&#xff0c;但Tauri允许前端开发者控制应用窗口的方方面面&#xff0c;从而创造出更加原生的体验。 窗口配置基础 初始窗口配置 在…...

golang goroutine(协程)和 channel(管道) 案例解析

文章目录 goroutine和channel概念开启线程与channel简单通信流程多个工作协程并发执行流程 goroutine和channel概念 goroutine(协程)&#xff0c;一般我们常见的是进程&#xff0c;线程&#xff0c;进程可以理解为一个软件在运行执行的过程&#xff0c;线程跟协程比较类似&…...

底层源码和具体测试解析HotSpot JVM的notify唤醒有序性(5000字详解)

在大家的认知里&#xff0c;或者大家也可能搜过&#xff0c;notify唤醒机制到底是随机的呢&#xff1f;还是顺序的呢&#xff1f;在网上其实也有很多人说notify的唤醒机制就是随机的&#xff0c;但实际上并不是这样的&#xff0c;notify的唤醒机制是先进先出的&#xff01; 目…...

Jenkins(CI/CD工具)

1. 什么是 Jenkins&#xff1f; Jenkins 是一个开源的持续集成&#xff08;CI&#xff09;和持续交付/部署&#xff08;CD&#xff09;工具&#xff0c;用于自动化软件构建、测试和部署过程。 2. Jenkins 优势 &#xff08;1&#xff09;开源免费&#xff1a;社区活跃&#…...

Apache Sqoop数据采集问题

Sqoop数据采集格式问题 一、Sqoop工作原理二、Sqoop命令格式三、Oracle数据采集格式问题四、Sqoop增量采集方案 Apache Sqoop是一款开源的工具&#xff0c;主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递&#xff0c;可以将一个关系型数据库&…...

再学GPIO(二)

GPIO寄存器 每个GPI/O端口有两个32位配置寄存器(GPIOx_CRL&#xff0c;GPIOx_CRH)&#xff0c;两个32位数据寄存器(GPIOx_IDR和GPIOx_ODR)&#xff0c;一个32位置位/复位寄存器(GPIOx_BSRR)&#xff0c;一个16位复位寄存器(GPIOx_BRR)和一个32位锁定寄存器(GPIOx_LCKR)。 GPIO…...

err: Error: Request failed with status code 400

好的&#xff0c;今天学习ai的时候从前端发送请求&#xff0c;实在是想不通为啥会啥是一个坏请求&#xff0c;后来从前端方法一个一个找参数&#xff0c;传递的值都有&#xff0c;然后想到我这边需要传递的是一个对象&#xff0c;那么后端使用的RequestParam就接收不到json对象…...

解决qnn htp 后端不支持boolean 数据类型的方法。

一、背景 1.1 问题原因 Qnn 模型在使用fp16的模型转换不支持类型是boolean的cast 算子&#xff0c;因为 htp 后端支持量化数据类型或者fp16&#xff0c;不支持boolean 类型。 ${QNN_SDK_ROOT_27}/bin/x86_64-linux-clang/qnn-model-lib-generator -c ./bge_small_fp16.cpp -b …...

k8s学习记录(五):Pod亲和性详解

一、前言 上一篇文章初步探讨了 Kubernetes 的节点亲和性&#xff0c;了解到它在 Pod 调度上比传统方式更灵活高效。今天我们继续讨论亲和性同时Kubernetes 的调度机制。 二、Pod亲和性 上一篇文章中我们介绍了节点亲和性&#xff0c;今天我们讲解一下Pod亲和性。首先我们先看…...

MongoDB与PHP7的集成与优化

MongoDB与PHP7的集成与优化 引言 随着互联网技术的飞速发展,数据库技术在现代软件开发中扮演着越来越重要的角色。MongoDB作为一种流行的NoSQL数据库,以其灵活的数据模型和强大的扩展性受到众多开发者的青睐。PHP7作为当前最流行的服务器端脚本语言之一,其性能和稳定性也得…...

maven相关概念深入介绍

1. pom.xml文件 就像Make的MakeFile、Ant的build.xml一样&#xff0c;Maven项目的核心是pom.xml。POM&#xff08;Project Object Model&#xff0c;项目对象模型&#xff09;定义了项目的基本信息&#xff0c;用于描述项目如何构建&#xff0c;声明项目依赖&#xff0c;等等。…...

以科技之力,启智慧出行 —— 阅读《NVIDIA 自动驾驶安全报告》及观看实验室视频有感

作为中南民族大学通信工程专业的学生&#xff0c;近期研读《NVIDIA 自动驾驶安全报告》并观看其实验室系列视频后&#xff0c;我深刻感受到自动驾驶技术不仅是一场交通革命&#xff0c;更是一次社会生产力的解放与民族精神的升华。这场变革的浪潮中&#xff0c;我看到了科技如何…...

2P4M-ASEMI机器人功率器件专用2P4M

编辑&#xff1a;LL 2P4M-ASEMI机器人功率器件专用2P4M 型号&#xff1a;2P4M 品牌&#xff1a;ASEMI 封装&#xff1a;TO-126 批号&#xff1a;最新 引脚数量&#xff1a;3 封装尺寸&#xff1a;如图 特性&#xff1a;双向可控硅 工作结温&#xff1a;-40℃~150℃ 在…...

基础的贝叶斯神经网络(BNN)回归

下面是一个最基础的贝叶斯神经网络&#xff08;BNN&#xff09;回归示例&#xff0c;采用PyTorch实现&#xff0c;适合入门理解。 这个例子用BNN拟合 y x 噪声 的一维回归问题&#xff0c;输出均值和不确定性&#xff08;方差&#xff09;。 import torch import torch.nn a…...

小黑享受思考心流: 73. 矩阵置零

小黑代码 class Solution:def setZeroes(self, matrix: List[List[int]]) -> None:"""Do not return anything, modify matrix in-place instead."""items []m len(matrix)n len(matrix[0])for i in range(m):for j in range(n):if not m…...

整合 | 大模型时代:微调技术在医疗智能问答矩阵的实战应用20250427

&#x1f50e; 整合 | 大模型时代&#xff1a;微调技术在医疗智能问答矩阵的实战应用 一、引言 在大模型技术高速变革的背景下&#xff0c;数据与微调技术不再是附属品&#xff0c;而是成为了AI能力深度重构的核心资产。 尤其在医疗行业中&#xff0c;微调技术改写了智能分诊和…...

Web安全:威胁解析与综合防护体系构建

Web安全&#xff1a;威胁解析与综合防护体系构建 Web安全是保护网站、应用程序及用户数据免受恶意攻击的核心领域。随着数字化转型加速&#xff0c;攻击手段日益复杂&#xff0c;防护需兼顾技术深度与系统性。以下从威胁分类、防护技术、最佳实践及未来趋势四个维度&#xff0…...

spring项目rabbitmq es项目启动命令

应该很多开发者遇到过需要启动中间件的情况&#xff0c;什么测试服务器挂了&#xff0c;服务连不上nacos了巴拉巴拉的&#xff0c;虽然是测试环境&#xff0c;但也会手忙脚乱&#xff0c;疯狂百度。 这里介绍一些实用方法 有各种不同的场景&#xff0c;一是重启&#xff0c;服…...

人工智能期末复习1

该笔记为2024.7出版的人工智能技术应用导论&#xff08;第二版&#xff09;课本部分的理论总结。 一、人工智能的产生与发展 概念&#xff1a;人工智能是通过计算机系统和模型模拟、延申和拓展人类智能的理论、方法、技术及应用系统的一门新的技术科学。 发展&#xff1a;19…...

深入理解指针(5)

字符指针变量 对下述代码进行调试 继续go,并且观察p2 弹出错误&#xff1a; 为什么报错呢&#xff1f; 因为常量字符串是不能被修改的&#xff0c;否则&#xff0c;编译器报错。 最后&#xff0c;打印一下&#xff1a; 《剑指offer》中收录了⼀道和字符串相关的笔试题&#…...

新魔百和CM311-5_CH/YST/ZG代工_GK6323V100C_2+8G蓝牙版_强刷卡刷固件包(可救砖)

新魔百和CM311-5_CH&#xff0f;YST&#xff0f;ZG代工_GK6323V100C_28G蓝牙版_强刷卡刷固件包&#xff08;可救砖&#xff09; 1、准备一个优盘卡刷强刷刷机&#xff0c;用一个usb2.0的8G以下U盘&#xff0c;fat32&#xff0c;2048块单分区格式化&#xff08;强刷对&#xff…...

磁盘清理git gc

#!/bin/bash find / -type d -name “.git” 2>/dev/null | while read -r git_dir; do repo_dir ( d i r n a m e " (dirname " (dirname"git_dir") echo “Optimizing r e p o d i r " c d " repo_dir" cd " repod​ir"cd&…...

django admin AttributeError: ‘UserResorce‘ object has no attribute ‘ID‘

在 Django 中遇到 AttributeError: ‘UserResource’ object has no attribute ‘ID’ 这类错误通常是因为你在代码中尝试访问一个不存在的属性。在你的例子中&#xff0c;错误提示表明 UserResource 类中没有名为 ID 的属性。这可能是由以下几个原因造成的&#xff1a; 拼写错…...

现代Python打包工具链

现代Python打包工具如Poetry、Flit和Hatch提供了更简单、更强大的方式来管理项目依赖和打包流程。下面我将通过具体示例详细介绍这三种工具。 1. Poetry - 全功能依赖管理工具 Poetry是最流行的现代Python项目管理工具之一&#xff0c;它集依赖管理、虚拟环境管理和打包发布于一…...

(done) 吴恩达版提示词工程 8. 聊天机器人 (聊天格式设计,上下文内容,点餐机器人)

视频&#xff1a;https://www.bilibili.com/video/BV1Z14y1Z7LJ/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 别人的笔记&#xff1a;https://zhuanlan.zhihu.com/p/626966526 8. 聊天机器人&#xff08;Chatbot&#xff09; …...

Maven概述

1.maven是什么&#xff1f; Maven 是一个基于项目对象模型&#xff08;Project Object Model&#xff0c;POM&#xff09;概念的项目构建工具&#xff0c;主要用于 Java 项目的构建、依赖管理和项目信息管理。&#xff08;跨平台的项目管理工具&#xff0c;用于构建和管理任何…...

SKLearn - Biclustering

文章目录 Biclustering &#xff08;双聚类&#xff09;谱二分聚类算法演示生成样本数据拟合 SpectralBiclustering绘制结果 Spectral Co-Clustering 算法演示使用光谱协同聚类算法进行文档的二分聚类 Biclustering &#xff08;双聚类&#xff09; 关于双聚类技术的示例。 谱…...

使用c++实现一个简易的量子计算,并向外提供服务

实现一个简易的量子计算模拟器并提供服务是一个相对复杂的过程&#xff0c;涉及到量子计算的基本概念、C编程以及网络服务的搭建。以下是一个简化的步骤指南&#xff0c;帮助你开始这个项目&#xff1a; 步骤 1: 理解量子计算基础 在开始编码之前&#xff0c;你需要对量子计算…...

京东攻防岗位春招面试题

围绕电商场景&#xff0c;以下是5道具有代表性的技术面试题及其解析&#xff0c;覆盖供应链、电商大促、红蓝对抗等场景。 《网安面试指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇网安资料库https://mp.weixin.qq.com/s?…...

Kafka批量消费部分处理成功时的手动提交方案

Kafka批量消费部分处理成功时的手动提交方案 当使用Kafka批量消费时&#xff0c;如果500条消息中只有部分处理成功&#xff0c;需要谨慎处理偏移量提交以避免消息丢失或重复消费。以下是几种处理方案示例&#xff1a; 方案1&#xff1a;记录成功消息并提交最后成功偏移量 Co…...

消息中间件

零、文章目录 消息中间件 1、中间件 &#xff08;1&#xff09;概述 中间件&#xff08;Middleware&#xff09;是位于操作系统、网络与数据库之上&#xff0c;应用软件之下的一层独立软件或服务程序&#xff0c;其核心作用是连接不同系统、屏蔽底层差异&#xff0c;并为应…...

vue3直接操作微信小程序云开发数据库,web网页对云数据库进行增删改查

我们开发好小程序以后&#xff0c;有时候需要编写一个管理后台网页对数据库进行管理&#xff0c;之前我们只能借助云开发自带的cms网页&#xff0c;但是cms网页设计的比较丑&#xff0c;工作量和代码量也不够&#xff0c;所以我们今天就来带大家实现用vue3编写管理后台直接管理…...

重塑编程体验边界:明基RD280U显示器深度体验

重塑编程体验边界&#xff1a;明基RD280U显示器深度体验 写在前面 本文将以明基RD280U为核心&#xff0c;通过技术解析、实战体验与创新案例&#xff0c;揭示专业显示器如何重构开发者的数字工作台。 前言&#xff1a;当像素成为生产力的催化剂 在GitHub的年度开发者调查中&…...

Linux命令-iostat

iostat 命令介绍 iostat 是一个用于监控 Linux 系统输入/输出设备加载情况的工具。它可以显示 CPU 的使用情况以及设备和分区的输入/输出统计信息&#xff0c;对于诊断系统性能瓶颈&#xff08;如磁盘或网络活动缓慢&#xff09;特别有用。 语法&#xff1a; iostat [options…...

Hyper-V安装Win10系统,报错“No operating system was loaded“

环境&#xff1a; Win10专业版 Hyper-V 问题描述&#xff1a; Hyper-V安装Win10系统&#xff0c;报错"No operating system was loaded" 已挂载ISO但仍无法启动的深度解决方案​​ &#x1f527;如果已确认ISO正确挂载且启动顺序已调整&#xff0c;但虚拟机仍提…...

Zabbix

zabbix官网: https://www.zabbix.com zabbix中文操作手册&#xff1a;https://www.zabbix.com/documentation/5.0/zh/manual/introduction/features 1、SERVER Zabbix server 是 Zabbix 软件的核心组件。Zabbix Agent 向Zabbix server报告可用性、系统完整性信息和统计信息。…...

NEPCON China 2025 | 具身智能时代来临,灵途科技助力人形机器人“感知升级”

4月22日至24日&#xff0c;生产设备暨微电子工业展&#xff08;NEPCON China 2025&#xff09;在上海如期开展。本届展会重磅推出“人形机器人拆解展区”&#xff0c;汇聚35家具身智能产业链领军企业&#xff0c;围绕机械结构、传感器布局、驱动系统与AI算法的落地应用&#xf…...

css响应式布局设置子元素高度和宽度一样

css响应式布局设置子元素高度和宽度一样 常常遇到响应式布局 其中父元素&#xff08;类名为.list&#xff09;包含多个子元素&#xff08;类名为.item&#xff09;&#xff0c;每个子元素中显示一张图片&#xff0c;并且这些图片能够根据子元素的宽度和高度进行自适应调整。 …...