SSM在线作业管理系统:从选题到答辩的全链路解析
又到了一年毕业设计选题季后台私信里反复被同一个关键词轰炸SSM在线作业管理系统。实话说这个题在计算机毕业设计里属于经典中的经典每年都有大量学生选它但真正能讲清楚为什么这么设计、每一步在做什么的人并不多。这篇文章我不打算给你一份照着抄的说明书而是把整个项目从选题、建表、写代码、部署到答辩的完整链路拆开讲明白每一个关键决策背后的理由。无论你是正要做这个题目的应届生还是想拿它练手积累项目经验的开发者这篇内容都值得你花十分钟读完。1. 这个题目怎么选才不吃亏在线作业管理系统的选题复盘1.1 毕业设计选题的底层逻辑每年选毕设题目的时候我都会让学生先想清楚三件事技术栈熟不熟、业务逻辑是否足够完整、有没有足够的差异化空间。SSM在线作业管理系统之所以长盛不衰恰恰是因为它在这三个维度上达到了一个很好的平衡。Spring SpringMVC MyBatis这套组合代表的是Java Web开发里最经典的分层思想面试和考研复试都爱问做一遍等于把SSM从理论到实践完整过了一遍。业务上作业管理天然包含学生、教师、管理员三类角色涉及登录鉴权、课程管理、作业发布、文件上传、在线提交、成绩评定、数据统计这些模块复杂度适中——太简单撑不起毕设的工作量太复杂又容易做不完。所谓差异化空间指的是同一个题目下你能做的发挥。有人只做老师发作业、学生交作业的极简闭环有人会加入公告通知、班级管理、成绩导出Excel、作业查重、数据可视化等增强功能。我和几个同学聊过最后发现凡是答辩拿高分的都不是功能堆得最多的而是把某一个模块讲得特别透彻的那批人。选这个题你要想清楚自己的主打卖点是什么。1.2 技术栈选型复盘SSM为什么还不过时我知道很多人一听到SSM就觉得老古董。确实现在新项目都在往Spring Boot和微服务上走但毕业设计的逻辑和工业级项目的逻辑不完全一样。SSM的原始配置非常繁琐你被迫去理解Spring的Bean管理、SpringMVC的HandlerMapping、MyBatis的Mapper代理这些底层机制而不是像Spring Boot那样约定大于配置一键跑起来。手里的配置越麻烦你学到的东西其实越多。从答辩角度来看评委老师大部分来自高校他们对SSM这套技术栈非常熟悉提问的深度和广度都可控。你要是选一个特别冷门的新框架老师不了解反而容易问出你答不上来的问题。另外很多学校的毕设仓库里存了大量往届项目SSM作业管理系统属于参考资源最多、出了问题最好查的选题这对时间紧迫的学生来说是一个非常现实的优势。这里也要说句实话如果你已经熟练掌握了Spring Boot没有必要退回去写SSM。但如果你Spring Boot只会CtrlC/V那我建议老老实实做SSM因为它的复杂度恰好能逼你把原理搞懂。我在辅导学生的时候凡是能把SSM的请求流转流程讲明白的到答辩场上基本都不慌。2. SSM三层架构的项目骨架角色权限与数据库设计2.1 三类角色的权限边界怎么划在线作业管理系统的核心参与者有三类学生、教师、管理员。我在设计权限时没有直接用Spring Security那套重方案而是用拦截器Interceptor Session手工控制。理由很简单这个项目的角色数量固定、权限逻辑清晰引入安全框架反而增加学习成本和配置复杂度答辩时也很难讲出深度。三类角色的功能边界我用一个表梳理清楚角色核心功能不应有的权限学生查看作业、提交作业、查看成绩、查看公告不能发布作业、不能批改教师管理课程、发布作业、批改作业、导出成绩不能管理用户管理员用户管理、课程管理、系统公告、数据统计不参与教学业务这个划分表面上简单实际落地时有一个很容易踩的坑很多学生在Controller里只判断是否登录不判断角色对不对。比如学生直接访问发布作业的URL就能打开页面这属于严重的越权漏洞。我在项目里专门写了一个角色校验的拦截器对每个请求URL的前缀做规则匹配——/teacher/** 必须Teacher角色/student/** 必须Student角色/admin/** 必须Admin角色否则一律拦截跳转到403页面。2.2 数据库表结构从需求到建表的推演过程表结构设计是整个数据库设计部分的重头戏。我见过很多学生上来就建五六张表结果写代码时发现字段不够用又反复ALTER TABLE。这个项目的最佳实践是先梳理出核心实体用户、角色、课程、作业、提交记录、公告。它们之间的关系是用户和角色多对多课程和教师多对一作业属于某门课程提交记录属于某个学生对某份作业的一次提交。核心的几张表我列一下关键字段供参考t_userid, username, password, real_name, email, phone, create_time。密码我用MD5加盐存储虽然现在看MD5不够强但毕设里比明文存储强太多答辩时也能解释清楚为什么加盐。t_courseid, course_name, course_code, teacher_id, description, create_time。注意 teacher_id 要关联 t_user 表我用逻辑外键而非物理外键原因见下一小节。t_homeworkid, course_id, title, content, deadline, create_time。这里最关键的是 deadline后续判断能否提交全靠它。t_submissionid, homework_id, student_id, content, file_url, submit_time, status, score, comment。这是一张核心业务表一个学生针对一份作业只有一条有效提交记录所以我在设计时加了唯一约束(homework_id, student_id)。2.3 为什么我放弃物理外键改用逻辑外键很多教材和课程设计文档里都强调必须建立外键约束但在实际开发中我和我指导的学生做这个项目时都倾向于只用逻辑外键——也就是在Java代码层面维护关联关系而不是在数据库层面用 FOREIGN KEY 强制约束。原因有两个第一物理外键在删除数据时容易引发连锁问题。比如你删除一门课程系统会自动拦截或者级联删除关联的作业和提交记录但业务流程里我们往往是做逻辑删除而不是物理删除。第二在大数据量和高并发场景下物理外键会引入额外的锁和约束检查开销性能上更吃亏。当然答辩老师如果问起为什么没有外键你要能从容地答出这两点反而是一个加分项。在表结构落地的时候还有一个细节值得注意时间字段统一用datetime不要某些表用date、某些表用timestamp否则写SQL统计时会疯掉。另外所有表都加上create_time和update_time两个审计字段这个习惯能让你在论文里写系统设计了完善的审计机制时有理有据。2.4 状态字段的设计作业的生命周期管理作业从发布到归档其实是一个有状态的对象。我设计了这么几个状态草稿、已发布、进行中、已截止、已批改完成。对应的表里用一个status字段int类型表示。0代表草稿教师可以编辑1代表已发布学生可见并可以提交2代表已截止学生不能再提交但可以查看作业内容3代表批改完成学生可以看到分数和评语这个状态机看着简单但它是整个系统逻辑的主心骨。我在 Service 层维护状态流转规则比如只有已发布和进行中的作业才能提交截止时间到了自动变为已截止。这里涉及一个经典问题谁来触发状态变更我的做法是双重保障——提交作业时检查当前时间和截止时间同时提供一个定时任务每小时扫描一次把所有过了截止时间的作业状态批量更新。这样即使某个学生卡着截止时间点提交状态判断也不会出错。3. 从空表到可运行核心功能模块的实现链路3.1 登录鉴权和拦截器的落地细节登录这块看起来是所有系统里最基础的但恰恰是出问题最多的地方。我用的方案是用户提交用户名密码 - Controller 接收 - Service 调用 Mapper 查询用户 - 比对加密后的密码 - 成功后把用户对象塞进 Session - 设置一个标记位loginUser。这里有一个很多教程不会告诉你的坑Session 里的用户对象不能存敏感字段。密码、手机号这些尽量不要整个塞进去最好存一个轻量的值对象。我当时在一个模拟项目里就是没注意直接把整个 User 塞进 Session结果页面一多、每次取数据都要查一次库性能很难看。拦截器的配置要注意放行路径。静态资源css、js、images、登录接口、注册接口应该放行其余全部拦截。我在 SpringMVC 配置文件里用mvc:interceptors配置拦截器规则要特别注意mvc:exclude-mapping一定要配置对否则会出现明明登录了还是被拦下来的诡异问题。mvc:interceptors mvc:interceptor mvc:mapping path/**/ mvc:exclude-mapping path/login/ mvc:exclude-mapping path/register/ mvc:exclude-mapping path/css/**/ mvc:exclude-mapping path/js/**/ mvc:exclude-mapping path/images/**/ bean classcom.example.interceptor.LoginInterceptor/ /mvc:interceptor /mvc:interceptors3.2 作业CRUDService层的贫血模型陷阱这个项目的核心业务是作业的增删改查看起来简单但我见过太多人把 Service 层写成了纯转手层——Controller 调 ServiceService 直接调 Mapper中间什么都不干。这种写法在答辩时非常吃亏因为评委一看就知道你没有深入思考业务。正确的做法是把业务规则放进 Service。举个例子教师发布作业这个动作Service 里至少要干这几件事校验当前用户是否是该课程的授课教师、校验作业标题不为空、校验截止时间晚于当前时间、设置初始状态为草稿。这些都是业务规则放在 Controller 里会让控制器臃肿不堪放在 Service 里才能体现出分层设计的意义。作业查询也需要分页。SSM 项目里最常用的分页插件是PageHelper用法非常简单PageHelper.startPage(pageNum, pageSize); ListHomework list homeworkMapper.selectByCondition(condition); PageInfoHomework pageInfo new PageInfo(list);但 PageHelper 有一个著名的坑它只对紧接着的第一条 SQL 生效。如果你在 startPage 和查询之间夹了任何其他数据库操作比如先查了课程信息分页就会失效或者数据错乱。踩过一次这个坑之后我在团队里定了一条规矩PageHelper.startPage()必须紧贴查询语句中间不允许插入任何逻辑。另外PageHelper 依赖 MyBatis 插件机制一定要在 MyBatis 配置里正确注册。3.3 文件上传从表单到服务器存储的完整链路作业提交必须支持附件上传这是整个系统里技术含量最高的地方之一。我的方案是前端用input typefile配合enctypemultipart/form-data表单后端用 Spring 的CommonsMultipartResolver或StandardServletMultipartResolver来解析然后用 IO 流把文件写到服务器指定目录。上传路径的设计是另一个高频坑。我当时犯过一个经典错误把上传目录写死成F:/upload/。结果换了一台电脑部署路径不存在系统直接报错。正确做法是把上传目录配置在 properties 文件里启动时检查目录是否存在不存在就自动创建。还要注意给文件名加上时间戳或UUID前缀防止不同学生提交同名文件时互相覆盖。public String uploadFile(MultipartFile file) { if (file.isEmpty()) { throw new BusinessException(上传文件不能为空); } String originalFilename file.getOriginalFilename(); String ext originalFilename.substring(originalFilename.lastIndexOf(.)); String newFileName UUID.randomUUID().toString().replace(-, ) ext; File dir new File(uploadPath); if (!dir.exists()) { dir.mkdirs(); } File dest new File(uploadPath newFileName); file.transferTo(dest); return newFileName; }作业的类型限制也要提前想好只允许图片和PDF还是允许任意类型我的做法是在后端做白名单校验同时限制单文件最大10MB。前端限制只用来改善体验真正的安全校验必须放在后端——这个观点我在论文和答辩里都重点强调了。3.4 成绩评定与统计给系统加上决策能力作业管理系统的核心闭环除了发布、提交之外最关键的是教师批改评分和学生查看成绩。很多基础的在线作业系统到这里就结束了但我在这个项目里做了一件不一样的事加了成绩统计和简单的可视化。教师批改时可以针对某一份作业打分并填写评语。为了提升教师端的使用体验我做了一个待批改作业列表视图按课程聚合显示总提交数、已批改数、待批改数。这个功能在数据库层面就是一条 group by 聚合查询但它在业务层面极大提升了系统的可用性答辩时也是颜值担当。统计模块我选择了两种图表柱状图展示某课程各次作业的平均分饼状图展示成绩区间分布。图表库选的是轻量级的ECharts引入非常简单只要在 SpringMVC 配置里放行静态资源然后前端用 Ajax 调后端接口拿 JSON 数据再渲染到图表里即可。这里也提醒一句前后端交互的数据格式要统一我自己习惯写一个统一的 Result 包装类包含 code、message、data 三个字段前端通过 code 判断请求是否成功这种做法比纯返回一个 Map 要规范得多。4. 部署上线和答辩前夕我踩过的坑与抢救方案4.1 环境版本不兼容Tomcat 9 和 JDK 8 的血泪教训这个项目在开发机上跑得好好的一到部署就报各种版本问题这是所有毕设项目最磨人心态的一个环节。我遇到的第一个坑是Tomcat 版本和 JDK 版本不匹配。我的开发环境是 JDK 8本意是用 Tomcat 9但某次误下了 Tomcat 10结果启动时一堆 ClassNotFound 异常折腾了一个晚上才发现是 Servlet API 的包名变了。这里的通用建议SSM 项目搭配 JDK 8 Tomcat 8.5 或 9 是最稳的组合。另外Maven 项目要特别注意打包方式如果你的 Pom 文件里没有明确指定packagingwar/packaging默认会打成 JAR部署到 Tomcat 的时候连部署都部署不了。还有一个很容易被忽略的点项目编译级别。IDEA 里 Project Structure 的 SDK 和 Project language level 要一致Maven 的 compiler 插件也要指定 source 和 target 为 1.8。否则编译出来的一些类字节码版本过高Tomcat 里的 JVM 不认识运行起来就会UnsupportedClassVersionError。这个问题在大学机房的老机器上尤其常见。4.2 文件上传路径在Linux服务器上的坑我习惯在 Windows 上开发但真正部署到服务器时一般是 Linux 环境。文件上传路径这个模块在 Windows 上测试完全没问题到了 Linux 上就出洋相了——因为 Windows 路径用反斜杠\Linux 用正斜杠/。如果你在代码里写死F:/upload/或者C:\\upload\\迁移到 Linux 直接嗝屁。解决方法是使用相对路径或配置化路径并在代码里使用File.separator或者直接统一用正斜杠。我在实际项目里采用了一个更省心的方案把上传目录放在 webapp 下的upload文件夹里通过 ServletContext 拿到它的绝对路径。这样做的好处是项目打成 war 包后上传目录跟着应用走换环境不用重新改配置。但要注意服务器重启或者重新部署时这个目录里的文件可能会被清理如果是正式环境最好还是单独指定一个系统目录并做好备份。4.3 分页查询总数对不上的排查全过程有一个场景让我印象特别深刻某次联调的时候提交记录列表第一页正常点击第二页就一直报错。我去查日志发现分页查询出来的 total 明显不对。排查过程是这样的先怀疑 PageHelper 配置问题检查了 MyBatis 插件是否注册没问题再怀疑 SQL 语句的问题我在数据库客户端直接执行这条带条件查询的语句结果正确最后把目光放到 Controller 层发现一个致命细节——我在调用分页查询之前先执行了一次courseService.getById()的查询好巧不巧这个查询也是 MyBatis 的 Mapper 方法PageHelper 的 ThreadLocal 上下文还残留着分页参数于是这条无辜的查询语句被强行套上了 LIMIT 关键字导致 PageHelper 拿到的总数变成了 0。这就是我前面提到的PageHelper.startPage 必须紧贴查询语句的真正原因。后来我把代码重构了一下把分页参数相关的数据查询和其他查询彻底分开问题就没有再出现过。这个排查过程后来还被我用到了论文的系统测试与排错章节里答辩时讲出来老师很认可。4.4 答辩前一天的数据库备份策略有一件事我必须单独提出来说答辩前一定要给数据库做完整备份。我见过不止一个学生在答辩现场连线数据库结果因为网络问题或者数据库服务没启动现场翻车。最稳的做法是本地和服务器各部署一份答辩时优先用本地环境演示如果本地环境出问题再切换服务器上的备份。数据库方面我推荐使用Navicat 或 DataGrip 的定时备份功能答辩前一周每天备份一次论文里也可以附上备份策略说明。另外初始化 SQL 脚本一定要保留好最好写成一个init.sql文件里面包含建库、建表、基础管理员账户的插入语句。这样即使数据库被搞崩了你也能在五分钟内重建一个干净的演示环境。5. 论文、PPT和演示Demo的配合打法5.1 论文结构如何把项目写出研究感毕设论文的质量直接影响最终成绩而大部分学生的通病是把论文写成了用户手册。我的建议是论文的每一章都要有逻辑主线不要只是堆截图。常用的结构安排是第一章 绪论写清楚研究背景、国内外现状、研究意义。这一章要多引用文献能用上教育信息化在线教学平台的发展这些关键词会加分。第二章 相关技术介绍SSM框架、JSP、MySQL等。这一章不要只罗列概念每个技术至少要写一段为什么选它、它解决了什么问题。第三章 需求分析包含可行性分析、功能需求、非功能需求、用例图。用例图可以用简单文本工具画但一定要画得规范。第四章 系统设计架构设计、功能模块设计、数据库设计。数据库设计部分除了ER图和表结构最好补充为什么这样设计的思路比如字段冗余和状态设计的考量。第五章 系统实现按模块逐个讲解配合关键代码和截图。代码不要贴大段只贴核心逻辑片段。第六章 系统测试功能测试、性能测试、兼容性测试。这里要写出测试用例表格几条发现并解决的bug描述会大大提升真实感。论文写作还有一个技巧先把图和表做出来再写文字。因为图文搭好框架之后每个章节的论述其实就是在解释图和表。我在写完数据库表结构图之后后面几章的速度快了不止一倍。5.2 答辩Demo的设计演示内容比功能多少更重要答辩时间通常只有10~15分钟你不可能把每个功能都演示一遍。这时候要挑最有技术含量、最能体现你思考的模块来讲。我给自己设计的演示流程是先演示登录和角色切换然后用教师身份发布作业再切换到学生身份提交作业包括文件上传最后切回教师身份批改打分看一眼统计图表收尾。整个过程刚好15分钟节奏紧凑。演示的时候有一个非常重要的细节提前把演示数据准备好不要在答辩现场边打字边等页面加载。比如要演示待批改列表就提前在数据库里插入几条状态为已提交待批改的记录要演示统计图表就保证图表里有足够多的数据不要只显示一两个柱子的空图。我有一个小习惯会专门准备一套演示专用数据和开发测试数据分开确保演示的时候界面干净清晰不会跳出一堆无意义的test测试1、测试2之类的数据。5.3 评委常问的问题库提前准备好答案根据我指导过的多届学生反馈SSM在线作业管理系统答辩时评委的提问高度集中在几个方向。我把它们整理成里一个清单建议你在答辩前逐条准备好答案SSM请求从浏览器到数据库的完整流转过程必问要把DispatcherServlet、HandlerMapping、Controller、Service、Mapper、数据库这个链路讲顺为什么选择SSM而不是Spring Boot密码是怎么存储的为什么不直接存明文数据库表之间是怎么关联的为什么不用物理外键文件上传之后存到了哪里服务器重启文件会不会丢如果同一个学生提交了多次作业系统怎么处理分页是怎么实现的PageHelper原理是什么异常处理机制是怎么设计的有没有全局异常处理器这些问题的答案其实在这篇文章里都能找到线索。我建议你用一两周时间把每个问题的答案写成300字左右的要点既方便记住又能在答辩时流畅表达。很多人答辩紧张是因为对自己做的东西不熟一旦你把这些高频问题和对策提前准备好现场心态完全不一样。另外如果你打算在这个题目上继续加亮点有几个方向可以尝试把JSP换成Vue前端做前后端分离给题目和论文加一点新意或者集成一个简单的在线预览功能让老师可以直接在浏览器里预览提交的PDF。不过我要提醒一句加功能之前先评估工作量毕设的核心是完整、稳健、能讲清楚而不是功能多到爆炸。宁可把一个模块做深也不要五个模块都只做皮毛。我在实际做这个项目时最深的体会是在线作业管理系统不是一个高深莫测的课题但它逼着我把SSM的每个环节都亲手摸了一遍从写配置到调试异常再到部署上线每一步都有收获。如果你也是一个人在做这个题目别焦虑跟着上面的思路一步一个脚印走你会发现自己能掌控的远远比想象中多。最后再分享一个小技巧遇到bug时先看控制台堆栈第一行再上网搜异常类型比直接复制堆栈去百度效率高一倍这句话值个几十次头发吧。

相关新闻

Network Kit HTTP:三方库版本清单ETag重验证与离线快照保底【鸿蒙心迹】

Network Kit HTTP:三方库版本清单ETag重验证与离线快照保底【鸿蒙心迹】

场景说明: 本文 ManifestHarbor 的 MH-1421、v17、8 个依赖项、ETag "ohpm-v17"、304 响应与 HiLog 均为受控演示数据。示意图不是 DevEco Studio、真机或真实服务器的测试结果;代码依据公开 Network Kit API 设计,尚未在实际 Harm…

2026/10/15 13:00:25 阅读更多 →
Hyper-Frames:无标签视频+里程计自监督预训练,实现低成本运动预测

Hyper-Frames:无标签视频+里程计自监督预训练,实现低成本运动预测

做自动驾驶、移动机器人、无人机导航的同行,应该都有一段被数据集标注反复折磨的经历。最近 Waymo Research 放出的 Hyper-Frames 框架,让我终于看到一条不太一样的路:不用一开始就堆人天去标框、标轨迹、标地图,用无标签视频加里…

2026/10/15 12:59:25 阅读更多 →
Wand图像批处理实战:ImageMagick的Python绑定与PIL替代方案

Wand图像批处理实战:ImageMagick的Python绑定与PIL替代方案

1. 为什么我要认真聊聊Wand这个模块 第一次接触Wand是在处理一批商品图的时候。运营那边丢过来三百多张图片,要求统一裁成正方形、加白色边框、压缩到指定体积以下,还要把每张图的平均色提取出来做配色统计。我当时第一反应是用PIL,但写着写着…

2026/10/15 12:59:25 阅读更多 →

最新新闻

第一次做 GEO 要几步?从注册到第一篇内容被收录的启动路径

第一次做 GEO 要几步?从注册到第一篇内容被收录的启动路径

结论先放这儿:6 步。注册 → 搭知识库 → 生成用户问题 → 攒标题 → 补正文 → 跑监测。前 4 步搭台子,第 5 步出第一篇成稿,第 6 步验证它有没有被 AI 读到。先说这篇是写给谁的 如果你刚注册完 GEOchat,打开后台看到「知识库、…

2026/10/15 13:45:15 阅读更多 →
SQLite FTS5 实现上下文感知查询:MCP协议与BM25动态加权实战

SQLite FTS5 实现上下文感知查询:MCP协议与BM25动态加权实战

1. 项目概述:什么是 context-mode?它不是个独立工具,而是一套数据驱动的上下文感知工作流设计范式“context-mode”这个词最近在开发者社区里频繁出现,但它本身并不是一个可下载安装的软件、也不是某个开源项目的官方名称&#xf…

2026/10/15 13:45:15 阅读更多 →
SQLite上下文感知搜索:基于MCP与FTS5的本地语义检索实践

SQLite上下文感知搜索:基于MCP与FTS5的本地语义检索实践

1. 项目概述:从“context-mode”这个词开始,我们到底在聊什么?“context-mode”这个词乍一看像某个IDE的隐藏开关,或是某款新出编辑器的实验性功能,但结合它旁边高频出现的关键词——MCP、SQLite、FTS5、BM25——你就该…

2026/10/15 13:45:15 阅读更多 →
SpringBoot+Vue构建城市垃圾分类管理系统实践

SpringBoot+Vue构建城市垃圾分类管理系统实践

1. 项目概述:城市垃圾分类管理系统的现实意义与技术选型 垃圾分类作为现代城市治理的重要环节,其信息化管理需求日益凸显。这套基于SpringBootVue的技术方案,正是针对社区、物业等场景设计的轻量级管理平台。我在实际参与某新一线城市智慧社区…

2026/10/15 13:45:15 阅读更多 →
第三范式:从数据库理论到信息治理的操作系统

第三范式:从数据库理论到信息治理的操作系统

1. 项目概述:什么是“第三范式”?它真不是数据库课上的老古董“第三范式”这个词最近在社交平台和职场交流中高频出现,但绝大多数人听到的第一反应是——“啊?数据库设计里的3NF?那个我大二挂过科的概念?”…

2026/10/15 13:45:15 阅读更多 →
sklearn决策树可视化:零依赖SVG生成方案

sklearn决策树可视化:零依赖SVG生成方案

1. 这个标题背后的真实困境:为什么有人想“绕过”graph.render?在用scikit-learn做机器学习项目时,绝大多数人根本不会接触到graph.render这个调用——因为它压根就不属于 sklearn 的 API。这是个典型的“跨库误用”现象,也是标题…

2026/10/15 13:44:14 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/15 9:49:14 阅读更多 →