news 2026/9/3 23:23:34

SpringBoot毕业设计全流程:选题、论文、答辩与排查指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SpringBoot毕业设计全流程:选题、论文、答辩与排查指南

计算机专业毕业设计的完整链路,并不只是把 SpringBoot 项目跑通,也不只是写完论文就结束。真正影响成绩的,往往是选题是否合适、论文能否把系统讲清楚、答辩时能否回答老师的提问。SpringBoot 是目前高校毕设中使用率最高的技术栈之一,而这三个问题正好可以围绕 SpringBoot 串成一条主线:题目用 SpringBoot 实现,论文围绕系统设计和 E-R 图展开,答辩问题也大多集中在自动装配、拦截器、事务、表结构和项目难点上。下面结合 SpringBoot 计算机毕设场景,把选题、论文结构、E-R 图设计、答辩 PPT、高频问题和源码运行排查整合成一条可落地的参考路线。

1. 选题决定论文和答辩的难度,先按这三条标准筛选

1.1 SpringBoot 为什么适合作为毕设主技术栈

先说结论:SpringBoot 不是唯一选择,但它对毕设场景比较友好。原因在于它把 Spring 体系里最繁琐的 XML 配置、依赖管理、内嵌容器和自动装配都做了封装,学生可以用更少的代码完成一个完整系统。对指导老师来说,SpringBoot 项目结构清楚、分层明确,方便检查;对学生来说,网上资料多,遇到报错容易搜索,运行环境的搭建门槛也低。

SpringBoot 的核心机制值得在论文和答辩中反复使用,例如:

  • 自动装配:通过@EnableAutoConfigurationspring.factories加载各类自动配置类。
  • Starter 依赖:spring-boot-starter-webspring-boot-starter-data-jpamybatis-spring-boot-starter等。
  • 内嵌 Web 容器:默认使用 Tomcat,打包后可直接用java -jar运行。

这些机制直接回答了“为什么用 SpringBoot”,是论文绪论部分和答辩技术类问题的常用素材。

1.2 适合 SpringBoot 的毕设题目方向

不是所有题目都适合 SpringBoot。判断标准很简单:系统是否有明确的角色、数据、业务状态流转。只要有“用户登录、数据录入、查询统计、权限区分”这些特征,就适合用 SpringBoot 实现。

下面表格整理了常见方向,按实现难度和答辩友好度排序:

题目方向典型例子核心功能难度答辩亮点
管理系统类学生选课、实验室预约、图书管理、设备报修增删改查、登录、角色权限、导入导出数据库设计完整,E-R 图好画
业务平台类校园二手交易、点餐、社区论坛、自习室预约商品、订单、预约状态流转中高业务流程复杂,能讲事务
数据可视化类招聘数据、电商销售、学生成绩分析数据采集、图表展示、统计报表和 ECharts 是加分项
工作流类请假审批、报销流程、合同审批流程定义、任务审批、流程跟踪引入 Flowable 或 Activiti 会拉开差距

这里要注意:工作流类题目技术深度足够,但对 SpringBoot 版本、Flowable 版本和流程引擎的理解要求高,适合基础较好的学生。如果时间只有两三个月,不建议从零整合 Flowable。

1.3 选题的三个常见坑

第一个坑是题目太大。比如“校园综合管理平台”,既要做教学管理、又要宿舍管理、还要社团管理,最后每个模块都是半成品。正确做法是拆成单一业务域,例如“基于 SpringBoot 的实验室设备借用管理系统”。

第二个坑是题目太小。比如“个人博客系统”,如果功能只有发布文章和浏览,没有用户权限、评论管理、分类统计,论文的数据库设计和系统功能部分会显得单薄。可以加入多角色管理或后台数据统计来撑起内容。

第三个坑是拿到源码后直接换个系统名就交。老师一旦追问业务细节,很容易穿帮。推荐做法是拿到源码后,先跑通,再改数据库表名、字段、菜单和页面文案,至少能讲清楚“这个系统的角色是谁、数据怎么流转、订单状态怎么变化”。

2. 论文结构要按“讲清楚一个系统”来写,而不是堆截图

2.1 摘要和绪论:先让老师知道你做了什么

论文摘要通常 300 字左右,要写清楚背景、系统使用的技术、系统功能、达到的效果。注意不要写成“本文设计并实现了一个系统”就结束,要把功能和技术落进去。

例如:

针对高校实验室设备管理存在的手工登记效率低、设备借用状态不透明等问题,设计并实现了基于 SpringBoot 和 Vue 的实验室设备借用管理系统。系统采用前后端分离架构,后端使用 SpringBoot 提供 RESTful 接口,持久层使用 MyBatis-Plus,前端使用 Vue 和 Element UI。系统实现了用户登录、设备信息管理、借用申请、审批、归还和统计报表等功能,能够有效提高设备管理效率。

绪论部分包含研究背景、国内外研究现状、研究内容、论文组织结构。研究现状不需要写很长,重点是把“别人做了什么,你在此基础上做了什么”讲清楚。

2.2 需求分析和系统设计:论文的核心章节

需求分析章节要回答三个问题:

  • 系统有哪些角色:例如管理员、教师、学生。
  • 每个角色有哪些功能:用功能用例表或功能清单描述。
  • 有哪些非功能需求:性能、安全性、易用性。

系统设计章节包含架构设计、功能模块设计、数据库设计和接口设计。架构设计可以画一张分层图,说明 Controller、Service、Mapper 的职责。数据库设计则要包含 E-R 图和表结构说明。

下面是一个功能模块表的示例:

模块功能点说明
登录认证用户名密码登录、退出登录使用 JWT 生成 token
用户管理用户新增、编辑、删除、查询管理员角色可操作
设备管理设备信息录入、修改、状态维护设备状态包括空闲、已借用、维修中
借用管理借用申请、审批、归还借用单状态:待审批、已通过、已归还、已拒绝
数据统计借用次数统计、设备使用率使用 ECharts 展示柱状图和饼图

2.3 系统实现:代码要贴,但不能只贴代码

系统实现章节最容易写成“代码大全”。建议每小节采用固定结构:功能说明 → 核心代码片段 → 运行效果或接口返回示例 → 关键逻辑解释。

核心代码要控制在 20 到 40 行,选择最能体现设计思想的代码。例如借用申请的状态校验、事务处理、权限拦截器,而不是把整个 Controller 全贴出来。

示例:借用申请时校验设备状态。

@Override @Transactional(rollbackFor = Exception.class) public BorrowOrder createBorrowOrder(BorrowApplyDTO dto) { Device device = deviceMapper.selectById(dto.getDeviceId()); if (device == null) { throw new ServiceException("设备不存在"); } if (!"IDLE".equals(device.getStatus())) { throw new ServiceException("设备当前不可借用,状态:" + device.getStatus()); } BorrowOrder order = new BorrowOrder(); order.setDeviceId(device.getId()); order.setUserId(dto.getUserId()); order.setStartTime(dto.getStartTime()); order.setEndTime(dto.getEndTime()); order.setStatus("PENDING"); borrowOrderMapper.insert(order); device.setStatus("BORROWED"); deviceMapper.updateById(device); return order; }

代码之后要解释两点:第一,为什么要加@Transactional(rollbackFor = Exception.class),因为插入借用单和修改设备状态是两个写操作,任何一个失败都要回滚,否则会出现“订单创建成功但设备状态没变”的数据不一致问题;第二,为什么先校验设备状态,因为借用申请必须保证设备是空闲状态,这是业务规则。

测试章节通常被忽视,但它很能加分。至少要有功能测试用例表,包括用例编号、测试步骤、预期结果、实际结果。例如:

用例编号功能操作预期结果实际结果
TC001登录输入正确用户名密码返回 token,跳转首页通过
TC002登录输入错误密码提示密码错误通过
TC003借用申请选择状态为已借出的设备提示设备不可借用通过

2.4 参考文献和结论

参考文献要与论文内容对应,至少包含 SpringBoot、MyBatis、数据库系统、前端框架相关的教材或文档。不要随便编造文献,答辩时老师可能会翻到某一篇问你看过没有。

结论部分要求简洁,写清楚“完成了什么、有什么不足、未来怎么改进”。不足可以写,例如“系统未接入消息队列,高并发场景下订单量激增时需要进一步优化”,这比空洞地写“系统稳定可靠”更真实。

3. E-R 图别只画四张表,要能回答“为什么这么设计”

3.1 E-R 图在论文里的作用

E-R 图(实体-联系图)用来描述实体、属性和实体之间联系的数据库设计工具。在毕业设计论文里,E-R 图是数据库设计章节的必备内容,也是答辩老师比较喜欢问的部分。

很多学生的问题在于:把 E-R 图画成了表和字段的堆叠,看不出业务关系。E-R 图的核心不是“表多”,而是“联系清楚”。例如“一个用户可以有多个借用单,一个借用单对应一个设备”,这种一对多、多对多的关系才是 E-R 图要表达的内容。

3.2 E-R 图基本符号和画法

使用标准 E-R 图符号:

符号含义示例
矩形实体用户、设备、借用单
椭圆属性用户名、密码、设备名称
菱形联系借用、审批
直线连接实体与属性用户-用户名
1 : n一对多联系用户-借用单
m : n多对多联系学生-课程

画图时要注意:实体用矩形,属性用椭圆,联系用菱形,联系两侧标注基数。如果是 1 : n 的联系,通常把外键放在 n 端实体对应的表中。

3.3 从 E-R 图到表结构

以一个实验室设备借用系统为例,E-R 图至少包含四个实体:

  • 用户(用户ID、用户名、密码、角色、学院、手机号)
  • 设备(设备ID、设备名称、类别、存放位置、状态)
  • 借用单(借用单ID、用户ID、设备ID、借用时间、归还时间、状态)
  • 审批记录(审批ID、借用单ID、审批人ID、审批结果、审批意见、审批时间)

实体之间关系:

  • 用户 1 : n 借用单
  • 设备 1 : n 借用单
  • 借用单 1 : 1 审批记录

对应的建表 SQL 大致如下:

CREATE TABLE user ( id BIGINT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE, password VARCHAR(100) NOT NULL, role VARCHAR(20) NOT NULL DEFAULT 'STUDENT', college VARCHAR(100), phone VARCHAR(20) ); CREATE TABLE device ( id BIGINT PRIMARY KEY AUTO_INCREMENT, device_name VARCHAR(100) NOT NULL, category VARCHAR(50), location VARCHAR(100), status VARCHAR(20) DEFAULT 'IDLE' ); CREATE TABLE borrow_order ( id BIGINT PRIMARY KEY AUTO_INCREMENT, user_id BIGINT NOT NULL, device_id BIGINT NOT NULL, start_time DATETIME NOT NULL, end_time DATETIME NOT NULL, status VARCHAR(20) DEFAULT 'PENDING', FOREIGN KEY (user_id) REFERENCES user(id), FOREIGN KEY (device_id) REFERENCES device(id) ); CREATE TABLE approval_record ( id BIGINT PRIMARY KEY AUTO_INCREMENT, order_id BIGINT NOT NULL, approver_id BIGINT NOT NULL, result VARCHAR(20) NOT NULL, comment VARCHAR(200), approve_time DATETIME, FOREIGN KEY (order_id) REFERENCES borrow_order(id), FOREIGN KEY (approver_id) REFERENCES user(id) );

3.4 E-R 图常见错误

第一个错误:没有体现多对多关系。学生选课是典型多对多,需要中间表。如果论文里学生表和课程表直接连线,而不解释中间表,数据库设计就不完整。

第二个错误:没有标注联系基数。E-R 图只有实体和属性,没有 1:1、1:n、m:n 标注,老师追问时很难解释外键为什么放在那张表。

第三个错误:E-R 图与实际表结构不一致。论文里 E-R 图只有 4 个实体,代码里却有 8 张表。答辩时老师一对比就会发现,务必保证图、表、代码三处一致。

注意:E-R 图、数据库表结构、Java 实体类三者必须保持一致,这是数据库设计章节最基本的要求。

4. 答辩 PPT 要按“5 分钟讲完重点”来设计

4.1 PPT 页数和时间控制

答辩通常给 5 到 15 分钟,多数学校是 5 到 10 分钟展示加提问。建议准备 12 到 16 页 PPT,每页讲 30 到 40 秒,保证 5 到 8 分钟能讲完。

页面结构可以按下面表格规划:

页码内容要点
第 1 页封面题目、姓名、学号、指导老师
第 2 页目录研究背景、系统设计、系统实现、总结
第 3 页选题背景和意义两句话讲清问题,不要长篇
第 4 页技术选型SpringBoot、MyBatis、Vue、MySQL,附一句为什么选
第 5 页系统功能模块图展示角色和功能
第 6 页E-R 图展示核心实体关系
第 7 页数据库表设计3 到 5 张核心表字段说明
第 8 页系统架构图Controller、Service、Mapper 分层
第 9-12 页核心功能演示登录、设备管理、借用流程,每页配截图
第 13 页系统演示切到系统实际操作
第 14 页测试结果测试用例表
第 15 页总结与不足完成内容、不足、改进方向
第 16 页致谢欢迎老师提问

4.2 每页避免大段文字

PPT 上不要放整段代码和大段文字。核心代码可以挑 10 行内,重点标注“事务”“校验”“状态流转”。技术名词要能解释,不要只写缩写。

例如自动装配,PPT 上可以写:

  • @SpringBootApplication包含三个注解:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan
  • 自动装配通过spring.factories加载AutoConfiguration类。
  • 条件注解如@ConditionalOnClass@ConditionalOnMissingBean控制是否生效。

4.3 演示系统的准备

答辩前必须在演示环境上把系统完整跑一遍,并且准备两份数据:

  • 演示数据:包含多角色账号、足够多的设备记录、不同状态的借用单,用来展示列表、详情和审批流程。
  • 异常数据:用来演示异常分支,例如借用一个已借出的设备,展示系统提示。

还要注意系统启动速度和数据库连接。使用本机 MySQL 时,提前确认服务已启动;若使用打包 jar 启动,确认 JDK 版本和配置文件中的数据库账号密码正确。

5. 高频答辩问题要按“技术、数据库、项目”三类准备

5.1 SpringBoot 技术类问题

最常被问的问题就是“为什么用 SpringBoot”,以及“自动装配是怎么实现的”。

回答框架:

  1. SpringBoot 简化了 Spring 应用开发,提供 starter 依赖和内嵌容器。
  2. @EnableAutoConfiguration通过AutoConfigurationImportSelector读取META-INF/spring.factories中的自动配置类。
  3. 自动配置类结合@ConditionalOnClass@ConditionalOnProperty等条件注解,决定是否生效。
  4. 用户可以通过@ConfigurationProperties绑定配置项,也可以通过排除特定自动配置类来自定义。

如果被问到“SpringBoot 版本太高怎么办”,可以从两方面回答:一是修改pom.xml中的spring-boot-starter-parent版本;二是注意高版本 SpringBoot 对应的高版本 JDK 要求,以及第三方 starter 是否兼容。

示例 pom 片段:

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.18</version> <relativePath/> </parent>

这里要强调:版本选择不要盲目跟最新,优先选择“生态系统成熟、文档多”的版本。SpringBoot 3.x 要求 JDK 17,很多毕设项目使用 JDK 8,如果直接迁移会碰到javaxjakarta包名变更的问题。这是一个很常见的坑。

5.2 数据库和设计类问题

常见问题:

  • 表设计为什么这样设计?各表之间的关系是什么?
  • 为什么有的字段要加唯一索引?
  • 删除用户时,用户的历史借用单怎么处理?
  • 如果查询变慢怎么优化?

回答时要结合自己的 E-R 图和表结构,例如:

“借用单和用户是一对多关系,外键 user_id 放在 borrow_order 表中。借用单状态有 PENDING、APPROVED、REJECTED、BORROWED、RETURNED,状态由审批操作触发更新。删除用户时不会物理删除,而是在 user 表中增加 status 字段做逻辑删除,保留历史借用记录。”

优化类问题可以回答:先通过EXPLAIN查看执行计划,确认是否走索引;查询频繁的字段加索引,例如device_idstatus;大数据量场景下考虑分页优化,避免深分页。

EXPLAIN SELECT * FROM borrow_order WHERE user_id = 1 AND status = 'PENDING';

5.3 项目类问题

项目类问题主要考察“项目到底是不是你自己做的”:

  • 项目最难的点是什么?
  • 登录是怎么做的?有没有用 JWT?
  • 如果用户并发借用同一台设备,会不会出现问题?
  • 如果让你继续做,下一步加什么功能?

建议提前准备三个“项目难点”,关键是要有具体场景,例如:

设备借用申请时,用户可能在极短时间内重复提交多个申请,同一个设备会被创建多个待审批订单。我在 service 层加了设备状态校验,并在数据库层对 device_id 和 status 做约束,同时把整个流程放到事务里,保证“设备被占用”和“订单创建”保持一致。

如果是数据库层约束,可以使用唯一索引或者乐观锁版本号。这里可以简单提及:

@Update("UPDATE device SET status = 'BORROWED', version = version + 1 WHERE id = #{id} AND status = 'IDLE'") int occupyDevice(@Param("id") Long id);

这种乐观锁写法在答辩中很有说服力,因为它体现的不只是业务代码,还有并发控制意识。

5.4 答辩中回答问题的通用原则

答辩回答不用追求“标准答案”,而要追求“逻辑清楚”。推荐顺序:先说结论,再说理由,最后举例。

例如:

我用的是 JWT。用户登录成功后,后端签发 token,前端存到 localStorage,之后每次请求通过拦截器从请求头里取出 token 并校验。选择 JWT 是因为系统是前后端分离,Session 在多端登录和横向扩展时不方便,JWT 无状态,适合接口鉴权。

这个回答包含了方案、原因和取舍,比只说“用了 JWT”更有说服力。

注意:回答问题时不要背稿,先表达结论再展开,老师会顺着你的逻辑继续追问,临时发散反而容易暴露薄弱点。

6. 拿到源码后跑不起来?按这条链路排查

6.1 运行前先对齐环境

大部分毕设源码运行失败,不是代码问题,而是环境不一致。拿到源码后,先看三个文件:

  • README.md或说明文档:确认 JDK 版本、数据库版本、前端构建方式。
  • pom.xml:确认 SpringBoot 版本、依赖项。
  • application.ymlapplication.properties:确认数据库账号、密码、端口配置。

常见环境要求:

项目常见要求检查方式
JDK1.8 或 17java -version
Maven3.6+mvn -v
MySQL5.7 或 8.0mysql --version
Node.js14+(如果前端是 Vue)node -v
Redis如果用到缓存redis-cli ping

6.2 SpringBoot 运行报错排查

按顺序检查:启动类位置 → 依赖版本 → 数据库连接 → 端口占用 → 配置覆盖。

常见报错和处理:

现象常见原因处理方式
启动后立刻退出,提示数据库连接失败数据库未启动、账号密码错误、库名不存在检查 MySQL 服务,执行mysql -u root -p验证
Port 8080 was already in use端口被占用修改端口或杀掉占用进程
报错ClassNotFoundException依赖未下载完整或版本冲突执行mvn clean install -U重新拉取
Failed to configure a DataSource缺少数据源配置检查application.yml中的 url、username、password
页面请求 404 或 405前端接口路径与后端不一致对照 controller 的@RequestMapping检查路径
java.lang.NoSuchMethodErrorJAR 包版本冲突mvn dependency:tree查看依赖冲突

如果是 SpringBoot 3.x 项目在 JDK 8 环境下运行,一定会报错,因为 SpringBoot 3.x 要求 JDK 17。同样,项目使用javax.servlet还是jakarta.servlet也会因为版本不同而报错。

排查命令示例:

# 查看端口占用(Windows) netstat -ano | findstr 8080 # 查看端口占用(Linux / macOS) lsof -i:8080 # 重新编译打包 mvn clean package -DskipTests # 后台运行 java -jar target/demo-0.0.1-SNAPSHOT.jar # 查看依赖树 mvn dependency:tree

6.3 把项目改成自己题目的最小步骤

如果基于已有项目修改,按下面步骤比较稳妥:

  1. 先跑通原项目,再改代码。
  2. 修改数据库名和建表脚本,清除原项目测试数据。
  3. 全局替换项目名、包名、界面文案和 Logo。
  4. 对照自己的题目整理功能清单,删除与题目无关的模块。
  5. 重新生成 E-R 图,保证论文中的图与最终表结构一致。

注意:不要只在代码里改字符串,还要检查数据库、前端页面、接口文档和论文截图是否同步更新,否则很容易被老师看穿。

7. 答辩前检查清单和最佳实践

7.1 论文检查清单

  • 摘要字数符合学校要求,核心内容完整:背景、技术、功能、效果。
  • 目录页码正确,图表编号连续,图表标题完整。
  • E-R 图、功能模块图、架构图和代码中的表结构一致。
  • 数据库设计章节包含 E-R 图和核心表字段说明。
  • 测试章节有测试用例表,不能只写“系统测试通过”。
  • 参考文献与正文引用对应,没有编造文献。
  • 全文统一术语,例如“用户”“管理员”不要混用。

7.2 源码检查清单

  • pom.xml中的依赖能正常下载,项目可以执行mvn clean package打包。
  • application.yml中不包含本机绝对路径和真实密码,生产环境建议使用环境变量或外部配置。
  • 数据库脚本可重复执行,包含默认账号和演示数据。
  • 启动后能访问首页,核心功能能跑通。
  • 如果使用前端项目,确认npm installnpm run build能成功。

注意:不要把数据库明文密码写死在代码里提交到仓库,至少使用本地配置文件隔离,并确保演示环境与真实环境配置分离。

7.3 演示准备清单

  • 提前准备好演示账号,至少包含管理员和普通用户两个角色。
  • 准备一条完整的业务演示路径:登录 → 新增设备 → 发起借用 → 审批 → 归还 → 查看统计。
  • 准备两个异常演示:错误密码登录、借出设备再次借用。
  • 演示当天使用有线网络或提前下载好依赖,避免现场网络问题。
  • 关闭不需要的弹窗、消息提醒和屏幕保护程序。

7.4 答辩前最后一周怎么安排

最后一周不建议大改功能,建议做三件事:

  1. 每天完整走一遍演示路径,熟悉每个按钮的位置和响应时间。
  2. 把老师可能问的问题写下来,找同学或自己模拟答辩,严格控制时间。
  3. 准备一份“项目一句话简介”,例如“这是一个面向高校实验室的设备借用管理系统,核心功能包括设备管理、借用审批和统计报表,后端使用 SpringBoot,前端使用 Vue”。

如果能在答辩现场用一句话讲清楚项目,再配合 E-R 图和核心代码解释业务规则,整体答辩效果会稳定很多。毕业设计考察的本质不是项目规模有多大,而是你是否真正理解了自己的系统:数据从哪里来、表为什么这样设计、业务状态如何流转、遇到问题怎么排查。把这些内容按上述脉络整理到论文和答辩 PPT 中,后续无论老师从哪个角度提问,都能有思路应对。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 23:22:02

Aspen Plus热泵精馏建模全解析:从原理到工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 23:21:20

2026华数杯ABC赛题解析:从审题到Python建模模板

2026年华数杯的ABC赛题已经放出来了。这两天群里讨论最多的是&#xff1a;A题到底难不难&#xff1f;B题是不是更偏数据挖掘&#xff1f;C题是不是最好写论文&#xff1f;这里先给一个可能反直觉的判断&#xff1a;大部分队伍最后拉开差距的地方&#xff0c;不在算法有多高级&a…

作者头像 李华
网站建设 2026/9/3 23:20:30

Python与PyCharm开发环境搭建:从版本管理到高效配置全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 23:17:51

k90promax vs k100promax:配置对比与选购决策指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 23:16:27

超级MESH风道机箱怎么选?鑫谷M400T散热设计与降频对策

超级MESH&#xff0c;大气呼啸 | 无界巡天M400T风道机箱【鑫谷】很多人在装机时&#xff0c;会非常认真地挑选CPU、显卡和主板&#xff0c;却在机箱这里犯了难&#xff1a;价格从一百多到上千元&#xff0c;看起来都差不多&#xff0c;到底差在哪&#xff1f;一个常见的悲剧是&…

作者头像 李华
网站建设 2026/9/3 23:14:37

SecureCRT 8.7安装配置与排障指南:远离注册机,安全高效

简介&#xff1a;针对高版本Linux系统下SSH连接难题&#xff0c;SecureCRT 8.7安装及kengen资源包面向运维人员、开发者和Linux学习者&#xff0c;提供了一套即下即用的解决方案。新版SecureCRT 8.7修复了旧版客户端无法连接Ubuntu 20.04等新系统的兼容性问题&#xff0c;配合k…

作者头像 李华