【SpringMVC】十分钟跑起来一个SpringMVC项目

目录标题

  • 1 项目概述
    • 1.项目结构解析
    • 2. MVC项目的结构和每个组件的作用:
    • 3. 项目的工作流程:
    • 4 后期可以扩展的点:
    • 2.源码学习
      • 1. HelloController 类,Spring MVC控制器
      • 2 springmvc-servlet.xml - Spring MVC的主要配置文件
      • 3.web 目录 - Web应用程序资源 WEB-INF/jsp - 存放JSP视图文件
            • 3.1 hello.jsp
            • 3.2 index.jsp
      • 4,WEB-INF/web.xml - Web应用程序的部署描述文件
      • 5. pom.xml - Maven项目的配置文件,用于管理项目依赖和构建过程
      • 6. springmvc-03-annotation.iml - IntelliJ IDEA的项目模块文件
  • 3 逐行学习代码
  • 4 服务器设置 tomcat

1 项目概述

1.项目结构解析

在这里插入图片描述

项目在运行的时候 会自动生成 target文件夹
在这里插入图片描述

2. MVC项目的结构和每个组件的作用:

  1. 项目根目录:springmvc-03-annotation

    • 名称表明这是一个使用注解方式配置的Spring MVC项目
  2. 源代码目录:src/main/java

    • nuc.ss.controller 包:
      • HelloController 类:使用注解配置的控制器类
      • 控制器负责处理用户请求,进行业务逻辑处理,并返回视图
      • 标注显示"100% methods"说明所有方法都已实现
  3. 资源配置目录:src/main/resources

    • springmvc-servlet.xml:Spring MVC的核心配置文件
      • 定义组件扫描
      • 配置视图解析器
      • 配置静态资源处理
      • 配置注解驱动等
  4. Web应用目录:web

    • WEB-INF/ - 安全目录,外部无法直接访问
      • jsp/ 目录:存放JSP视图文件
        • hello.jsp - 展示"Hello World"的视图
        • index.jsp - 应用的首页
      • web.xml - Web应用的部署描述文件
        • 配置DispatcherServlet
        • 配置URL映射
        • 配置字符编码过滤器等
  5. 项目构建文件:

    • pom.xml:Maven项目配置文件
      • 定义项目坐标(groupId, artifactId, version)
      • 管理项目依赖(Spring MVC, Servlet, JSP等)
      • 配置构建插件
      • 管理项目生命周期
  6. target/ 目录:

    • 存放编译后的类文件和资源
    • 包含最终的WAR包
  7. IDE相关文件:

    • springmvc-03-annotation.iml:IntelliJ IDEA的项目模块文件
    • 包含项目配置信息和依赖关系

3. 项目的工作流程:

  1. 用户发送请求到服务器
  2. 请求被DispatcherServlet接收
  3. 根据URL映射到对应的Controller方法
  4. Controller处理请求并返回视图名称
  5. 视图解析器找到对应的JSP文件
  6. 渲染视图并返回给用户
    在这里插入图片描述

4 后期可以扩展的点:

  1. 可以添加Service层处理业务逻辑
  2. 可以添加DAO层处理数据访问
  3. 考虑添加日志配置文件
  4. 可以添加测试目录进行单元测试
  5. 可以考虑使用更现代的视图技术(如Thymeleaf)替代JSP

这个项目结构是典型的Spring MVC应用,适合学习Spring MVC的基础知识和注解配置方式。

2.源码学习

src/main/java - 存放Java源代码

1. HelloController 类,Spring MVC控制器

package nuc.ss.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("/hello")
public class HelloController {@RequestMapping("/h1")public String hello(Model model) {//封装数据model.addAttribute("msg","Hello,这是最简单的SpringMVC!!!");return "hello";//会被视图解析器处理}
}

src/main/resources - 存放配置文件

2 springmvc-servlet.xml - Spring MVC的主要配置文件

springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttps://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 --><context:component-scan base-package="nuc.ss.controller"/><!-- 让Spring MVC不处理静态资源(css,js) --><mvc:default-servlet-handler /><!--支持mvc注解驱动在spring中一般采用@RequestMapping注解来完成映射关系要想使@RequestMapping注解生效必须向上下文中注册DefaultAnnotationHandlerMapping和一个AnnotationMethodHandlerAdapter实例这两个实例分别在类级别和方法级别处理。而annotation-driven配置帮助我们自动完成上述两个实例的注入。--><mvc:annotation-driven /><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!-- 前缀 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 后缀 --><property name="suffix" value=".jsp" /></bean></beans>

3.web 目录 - Web应用程序资源 WEB-INF/jsp - 存放JSP视图文件

3.1 hello.jsp
<%--&lt;%&ndash;--%>
<%--  Created by IntelliJ IDEA.--%>
<%--  User: Administrator--%>
<%--  Date: 2020/7/13 0013--%>
<%--  Time: 14:26--%>
<%--  To change this template use File | Settings | File Templates.--%>
<%--&ndash;%&gt;--%>
<%--<%@ page contentType="text/html;charset=UTF-8" language="java" %>--%>
<%--<html>--%>
<%--<head>--%>
<%--    <title>Title</title>--%>
<%--</head>--%>
<%--<body>--%>
<%--${msg}--%>
<%--</body>--%>
<%--</html>--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Spring MVC Demo</title><style>body {font-family: Arial, sans-serif;margin: 0;padding: 20px;background-color: #f0f2f5;display: flex;justify-content: center;align-items: center;min-height: 100vh;}.card {background: yellowgreen;padding: 30px;border-radius: 8px;box-shadow: 0 2px 4px rgba(0,0,0,0.1);text-align: center;}.message {color: #cb2525;font-size: 24px;}</style>
</head>
<body>
<div class="card"><div class="message">${msg}</div>
</div>
</body>
</html>
3.2 index.jsp
<%--Created by IntelliJ IDEA.User: AdministratorDate: 2020/7/13 0013Time: 14:21To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>$Title$</title></head><body>$END$</body>
</html>

4,WEB-INF/web.xml - Web应用程序的部署描述文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--1.注册servlet--><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--通过初始化参数指定SpringMVC配置文件的位置,进行关联--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param><!-- 启动顺序,数字越小,启动越早 --><load-on-startup>1</load-on-startup></servlet><!--所有请求都会被springmvc拦截 --><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

5. pom.xml - Maven项目的配置文件,用于管理项目依赖和构建过程

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>SpringMVC</artifactId><groupId>nuc.ss</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>springmvc-03-annotation</artifactId><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>
</project>

6. springmvc-03-annotation.iml - IntelliJ IDEA的项目模块文件

<?xml version="1.0" encoding="UTF-8"?>
<module version="4"><component name="FacetManager"><facet type="web" name="Web"><configuration><descriptors><deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" /></descriptors><webroots><root url="file://$MODULE_DIR$/web" relative="/" /></webroots><sourceRoots><root url="file://$MODULE_DIR$/src/main/java" /><root url="file://$MODULE_DIR$/src/main/resources" /></sourceRoots></configuration></facet></component>
</module>

这是一个使用注解配置方式的Spring MVC示例项目,从项目名称 springmvc-03-annotation 可以看出这可能是一个学习或练习项目。项目使用Maven进行依赖管理,并采用了JSP作为视图技术。

3 逐行学习代码

我来帮您详细注释每个关键代码文件:

  1. HelloController.java:控制器类
package nuc.ss.controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;@Controller  // 标识这是一个Spring MVC控制器
@RequestMapping("/hello")  // 类级别的请求映射,指定这个控制器的基础URL路径
public class HelloController {@RequestMapping("/h1")  // 方法级别的请求映射,完整访问路径为/hello/h1public String hello(Model model) {  // Model用于向视图传递数据// 向模型中添加属性,key为"msg",value为显示的消息// 这个数据可以在视图(JSP)中通过${msg}获取model.addAttribute("msg", "Hello,这是最简单的SpringMVC!!!");// 返回视图名称,会被视图解析器处理// 根据配置会在返回的字符串前加上前缀/WEB-INF/jsp/,后加上后缀.jspreturn "hello";}
}
  1. springmvc-servlet.xml:Spring MVC配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="..."> <!-- 这里是XML Schema位置定义 --><!-- 启用注解扫描,自动扫描包下的所有注解 --><!-- 会扫描指定包下的@Controller, @Service, @Repository, @Component等注解 --><context:component-scan base-package="nuc.ss.controller"/><!-- 配置静态资源处理,使Spring MVC不处理静态资源 --><!-- 例如.js,.css等文件会交由默认的servlet处理 --><mvc:default-servlet-handler /><!-- 启用Spring MVC注解驱动 --><!-- 自动注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter --><!-- 支持@Controller、@RequestMapping等注解 --><mvc:annotation-driven /><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"id="internalResourceViewResolver"><!-- 配置视图路径前缀 --><property name="prefix" value="/WEB-INF/jsp/" /><!-- 配置视图路径后缀 --><property name="suffix" value=".jsp" /></bean>
</beans>
  1. web.xml:Web应用配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="4.0"><!-- 配置Spring MVC的前端控制器 --><servlet><!-- servlet的名称 --><servlet-name>SpringMVC</servlet-name><!-- DispatcherServlet是Spring MVC的核心,负责接收请求并分发 --><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置Spring MVC配置文件的位置 --><init-param><param-name>contextConfigLocation</param-name><!-- 指定配置文件位置 --><param-value>classpath:springmvc-servlet.xml</param-value></init-param><!-- 配置servlet启动顺序,数字越小优先级越高 --><load-on-startup>1</load-on-startup></servlet><!-- 配置servlet映射 --><servlet-mapping><servlet-name>SpringMVC</servlet-name><!-- /表示拦截所有请求,不包括.jsp --><!-- /*表示拦截所有请求,包括.jsp --><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
  1. hello.jsp:视图文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Spring MVC Demo</title><style>/* 页面样式设置 */body {font-family: Arial, sans-serif;margin: 0;padding: 20px;background-color: #f0f2f5;display: flex;justify-content: center;  /* 水平居中 */align-items: center;      /* 垂直居中 */min-height: 100vh;}.card {background: yellowgreen;  /* 卡片背景色 */padding: 30px;border-radius: 8px;      /* 圆角边框 */box-shadow: 0 2px 4px rgba(0,0,0,0.1);  /* 阴影效果 */text-align: center;}.message {color: #cb2525;          /* 文字颜色 */font-size: 24px;}</style>
</head>
<body>
<div class="card"><div class="message">${msg}  <!-- 显示从控制器传来的消息 --></div>
</div>
</body>
</html>
  1. index.jsp 的详细注释
jspCopy<%-- Created by IntelliJ IDEA.  // IDE创建信息User: Administrator        // 创建用户Date: 2020/7/13 0013      // 创建日期Time: 14:21               // 创建时间To change this template use File | Settings | File Templates.  // 模板修改提示
--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>  <%-- 页面指令:设置内容类型和编码 --%>
<html><head><title>$Title$</title>  <%-- 页面标题占位符 --%></head><body>$END$  <%-- 内容占位符,表示编辑器光标默认位置 --%></body>
</html>

这是一个基础的 JSP 模板文件,主要包含:

文件信息注释

IDE 创建信息
创建者信息
创建时间
模板修改提示

页面指令

<%@ page … %> - JSP页面指令
contentType=“text/html” - 指定内容类型为HTML
charset=UTF-8 - 使用UTF-8字符编码
language=“java” - 使用Java作为脚本语言

占位符

T i t l e Title Title - 标题占位符
E N D END END - 内容占位符

这是一个最基础的页面模板,通常用作:

新建JSP页面的起点
快速创建页面的模板
统一项目中JSP页面的基本结构

  1. pom.xml

:Maven配置文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="..."><!-- 父项目配置 --><parent><artifactId>SpringMVC</artifactId><groupId>nuc.ss</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>springmvc-03-annotation</artifactId><!-- 构建配置 --><build><resources><!-- 配置Java源码目录下的资源文件处理 --><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><!-- 配置资源目录下的资源文件处理 --><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>
</project>

7 springmvc-03-annotation.iml 的注释说明:

<?xml version="1.0" encoding="UTF-8"?>
<module version="4"><component name="FacetManager"><!-- Web模块配置 --><facet type="web" name="Web"><configuration><!-- Web应用描述符配置 --><descriptors><!-- web.xml的位置配置 --><deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" /></descriptors><!-- Web资源根目录配置 --><webroots><!-- 指定web目录为Web应用的根目录 --><root url="file://$MODULE_DIR$/web" relative="/" /></webroots><!-- 源代码根目录配置 --><sourceRoots><!-- Java源代码目录 --><root url="file://$MODULE_DIR$/src/main/java" /><!-- 资源文件目录 --><root url="file://$MODULE_DIR$/src/main/resources" /></sourceRoots></configuration></facet></component>
</module>

这些配置文件共同构成了一个基础的Spring MVC项目结构。主要的处理流程是:

  1. 用户请求首先被web.xml
  2. 中配置的DispatcherServlet接收
  3. 根据springmvc-servlet.xml的配置,请求被路由到对应的Controller
  4. Controller处理请求并返回视图名称
  5. 视图解析器解析视图名称,找到对应的JSP文件
  6. JSP文件被渲染后返回给用户

这样的结构提供了一个清晰的MVC分层,便于后续维护和扩展。

4 服务器设置 tomcat

在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/18f6ec45b4f14210addd1b6a8df7cfed.png

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22950.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【复习】计算机网络

网络模型 OSI 应用层&#xff1a;给应用程序提供统一的接口表示层&#xff1a;把数据转换成兼容另一个系统能识别的格式会话层&#xff1a;负责建立、管理、终止表示层实体之间的通信会话传输层&#xff1a;负责端到端的数据传输网络层&#xff1a;负责数据的路由、转发、分片…

2025年- G17-Lc91-409.最长回文-java版

1.题目描述 2.思路 思路1: 判断一个字符串中的字母个数是否是偶数个。 遍历字符串&#xff0c;检查每个字符是否是字母&#xff08;可以通过 Character.isLetter() 来判断&#xff09;。 累加字母的个数。 最后判断字母的个数是否是偶数。 思路2: 这段 Java 代码的作用是 统…

本地安装 Grafana Loki

本地安装 Grafana Loki 一、 安装 Loki1. 下载 Loki2. 创建 Loki 配置文件3. 创建 Loki 服务 二、安装 Promtail1. 下载 Promtail2. 创建 Promtail 配置文件3. 创建 Promtail 服务 三、 安装 Grafana四、启动所有服务五、添加loki 数据源1. 添加仪表板2. 日志查询面板 json 参考…

创建虚拟环境以及配置对应的项目依赖

文章目录 首先创建一个虚拟环境&#xff0c;创建一个名字为myenv,并且版本为xxx的虚拟环境 conda create --name myenv pythonxxx激活虚拟环境 conda activate myenv下载所需的依赖&#xff0c;如果有requirements.txt文件 pip install -r requirements.txt容易出现的错误&a…

W803|联盛德|WM IoT SDK2.X测试|(1)开箱:开发板及说明

前几天关注的联盛德微电子新推出了WM IoT SDK2.X&#xff0c;正式发布后&#xff0c;邀请用户参加“免费试用&#xff0c;赢千元大礼”活动&#xff0c;填写信息&#xff0c;等待统一发送&#xff0c;很快收到了板子。 活动地址&#xff1a;联盛德微电子WM IoT SDK2.X正式发布…

SSI用量子计算来玩AI

刚到家&#xff0c;早上说今天回来要写SSI为什么这么牛B&#xff0c;那就必须得写 SSI是什么公司&#xff1f; Safe Super Intelligence 就是中间这个秃子的公司 ilya 前openAI 首席科学家(现在的mark chen确实有点水) Daniel Gross、Ilya Sutskever、Daniel Levy&#xff…

【分布式数据一致性算法】Gossip协议详解

在分布式系统中&#xff0c;多个节点同时提供服务时&#xff0c;数据一致性是核心挑战。在多个节点中&#xff0c;若其中一个节点的数据发生了修改&#xff0c;其他节点的数据都要进行同步。 一种比较简单粗暴的方法就是 集中式发散消息&#xff0c;简单来说就是一个主节点同时…

文档检索服务平台

文档检索服务平台是基于Elasticsearch的全文检索&#xff0c;包含数据采集、数据清洗、数据转换、数据检索等模块。 项目地址&#xff1a;Github、国内Gitee 演示地址&#xff1a;http://silianpan.cn/gdss/ 以下是演示角色和账号&#xff08;密码同账号&#xff09;&#xf…

【YOLOv8】YOLOv8改进系列(2)----替换主干网络之FasterNet(CVPR 2023)

主页&#xff1a;HABUO&#x1f341;主页&#xff1a;HABUO &#x1f341;YOLOv8入门改进专栏&#x1f341; &#x1f341;如果再也不能见到你&#xff0c;祝你早安&#xff0c;午安&#xff0c;晚安&#x1f341; 【YOLOv8改进系列】&#xff1a; 【YOLOv8】YOLOv8结构解读…

Linux信号

目录 1. 信号的概念搞定&#xff08;输出结论&#xff0c;支撑我们的理解&#xff09; 补充知识 2.信号的产生 补充知识 3.信号的保存 4.阻塞信号 1. 信号其他相关常见概念 2. 在内核中的表示 3. sigset_t 4. 信号集操作函数 sigprocmask sigpending 5. 信号的…

NI Multisim仿真实现39计数器

功能需求 39进制计数器。 功能分析 &#xff08;1&#xff09;时钟信号产生电路&#xff1a;用555定时器产生时钟脉冲 2&#xff09;计数器&#xff1a; 用两片74160先串接起来构成一个百进制计数器&#xff1b;再用置数法接成39进制计数器。&#xff08;可用开关控制计数器…

DeepSeek R1/V3满血版——在线体验与API调用

前言&#xff1a;在人工智能的大模型发展进程中&#xff0c;每一次新模型的亮相都宛如一颗投入湖面的石子&#xff0c;激起层层波澜。如今&#xff0c;DeepSeek R1/V3 满血版强势登场&#xff0c;为大模型应用领域带来了全新的活力与变革。 本文不但介绍在线体验 DeepSeek R1/…

Android Binder机制

Binder是IPC&#xff08;进程间通信&#xff09;的一种机制&#xff0c;它允许不同的应用或系统服务在不同的进程中安全地交换数据。Binder的核心原理是基于客户端-服务器模型&#xff08;C/S架构)。 一、Binder的定义 1. Binder是Android中的一个类&#xff0c;它继承了IBind…

医疗AI领域中GPU集群训练的关键技术与实践经验探究(上)

医疗AI领域中GPU集群训练的关键技术与实践经验探究(上) 一、引言 1.1 研究背景与意义 在科技飞速发展的当下,医疗 AI 作为人工智能技术与医疗领域深度融合的产物,正引领着医疗行业的深刻变革。近年来,医疗 AI 在疾病诊断、药物研发、健康管理等诸多方面取得了显著进展,…

MariaDB 历史版本下载地址 —— 筑梦之路

MariaDB 官方yum源里面只有目前在维护的版本&#xff0c;而有时候对于老项目来说还是需要老版本的rpm包&#xff0c;国内很多镜像站都是同步的官方仓库&#xff0c;因此下载老版本也不好找&#xff0c;这里主要记录下从哪里可以下载到历史版本的MariaDB rpm包。 1. 官方归档网…

特辣的海藻!2

基础知识点 整型数字-->字符数字 方法一&#xff1a;使用Character.forDigit()方法 Character.forDigit(int num, int radix) 该方法可以将整型数字转换为对应的字符形式。radix表示进制 Tips&#xff1a; ● 需要转换的整型数字必须在 0 到 radix-1 的范围内&#xff0c;…

RoCEv2 高性能传输协议与 Lossless 无损网络

目录 文章目录 目录RoCERoCEv2 协议栈RoCEv2 需要 Lossless NetworkLossless Network 拥塞控制技术网络拥塞的原因PFC 基于优先级的流量控制PFC Deadlock&#xff08;死锁&#xff09;的问题PFC Storm&#xff08;风暴&#xff09;的问题ECN 显式拥塞通知拥塞控制ECN 拥塞控制滞…

win10把c盘docker虚拟硬盘映射迁移到别的磁盘

c盘空间本身就比较小、如果安装了docker服务后&#xff0c;安装的时候没选择其他硬盘&#xff0c;虚拟磁盘也在c盘会占用很大的空间&#xff0c;像我的就三十多个G&#xff0c;把它迁移到其他磁盘一下子节约几十G 1、先输入下面命令查看 docker 状态 wsl -l -v 2、如果没有停止…

论文笔记:Autonomy-of-Experts Model

202501 arxiv 1 intro MoE中常被忽视的一个关键问题是路由器的决策过程与专家执行之间的分离 路由器无法直接评估专家的能力&#xff0c;因此它对专家的选择基本上是没有标签的预测如果路由器做出了错误的预测&#xff0c;选择的专家可能会试图处理这些令牌&#xff0c;但未能…

deepseek 清华大学[1-5版]全集

1、文件概览 1、清华大学《DeepSeek:从入门到精通》 2、清华大学《Deepseek如何赋能职场应用?》 3、清华大学《普通人如何抓住DeepSeek红利》 4、清华大学《DeepSeekDeepResearch让科研像聊天一样简单》 5、清华大学《DeepSeek与AI幻觉》 6、天津大学《深度解读Deepseek:原理…