Java Web百货供应链系统:库存预占与事务控制实战
简介这是一份面向计算机专业本科生的Java毕业设计实战资源聚焦百货中心供应链管理这一典型企业信息化场景帮助学生系统掌握从需求分析、系统设计到编码实现的全流程开发能力。资源共11个文件包含4张核心功能界面截图png、2个关键压缩包源代码与项目截图、2个部署与模块讲解视频链接url、1篇完整毕业论文doc、1份数据库建表脚本sql及1份使用说明文档txt整体仅1.6MB轻量易下载。已有438人学习下载适合作为课程设计参考或毕设开题基础。读者可直接获取可运行的Spring BootMySQL技术栈源码、配套数据库结构、答辩用PPT逻辑框架、论文撰写范式以及涵盖项目部署、数据统计、采购管理等模块的实操指导视频显著降低环境搭建与功能复现门槛。1. 这不是又一个“Java学生管理系统”百货中心供应链系统真能跑通采购→入库→销售→配送全链路毕业答辩前3天我靠它压住全场质疑去年带毕设时有个学生拿着“百货中心供应链管理系统”答辩PPT上台评委第一句就问“你这系统里采购单生成后怎么触发库存预占预占失败要不要回滚回滚了采购单状态怎么同步”——全场安静。他卡了8秒掏出手机点开自己部署的本地环境现场演示在采购管理页提交订单 → 库存模块自动弹出“预占校验中…” → 3秒后状态变绿同时库存列表里对应SKU的“可用数”实时减去采购量“在途数”采购量再手动把数据库里该SKU的库存设为0重提采购单立刻弹红框“库存不足预占失败采购单状态回退为‘待审核’”。评委点头说“行这算真闭环。”这就是这套资源的硬核底色它不是用JSP堆几个增删改查页面应付交差的“课程设计”而是按真实百货业务流建模的轻量级供应链MVP——供应商准入、采购计划、入库质检、批次管理、销售出库、物流跟踪、多维度报表6大模块全部可交互、可调试、可验证。它用最朴素的Java EE技术栈JSP Servlet JDBC MySQL没上Spring Boot但做了分层解耦没用Redis但实现了关键事务控制没接第三方物流API但预留了配送状态回调接口。适合两类人一是大三下刚学完JDBC和Servlet、正愁毕设没实感的学生二是想快速复现一个“有业务逻辑深度”的Java Web教学案例的讲师。别被标题里的“毕业设计”误导——它的代码结构、SQL设计、异常处理粒度比很多企业外包项目还扎实。2. 拆包即用从zip解压到浏览器看到登录页5步完成本地部署含JDK8/Tomcat9/MySQL5.7兼容性验证这套资源不是“下载即运行”的傻瓜包但所有依赖都明确锁定在主流教育环境可安装版本。我反复测试过JDK8u291 Tomcat9.0.83 MySQL5.7.42组合这是高校机房和学生笔记本最可能预装的版本。下面步骤基于Windows 10/11Linux/macOS仅路径和命令微调如startup.bat→startup.sh。2.1 解压与目录结构确认看清三个核心包的分工解压Java毕业设计——百货中心供应链管理系统.zip后你会看到这些关键文件文件名类型作用验证要点chain_2014-05-05.sqlSQL脚本数据库建表初始数据含供应商、商品、用户等打开看前10行确认有CREATE DATABASE IF NOT EXISTS chain; USE chain;Retail_Supply_Chain_System.zip源码压缩包JSPServlet工程源码含WEB-INF/web.xml解压后检查是否有src/com/retail/dao/、WebContent/WEB-INF/目录jsp百货中心供应链管理系统毕业设计说明书论文.docWord文档论文正文含系统架构图、ER图、核心类UML翻到第12页确认“库存预占流程图”包含“校验→预占→写日志→状态更新”四步提示别急着导入IDE先用文本编辑器打开Retail_Supply_Chain_System/WebContent/WEB-INF/web.xml确认servlet-class指向的是com.retail.servlet.LoginServlet这类真实类名而不是com.example.xxx占位符——这是判断源码是否经过脱敏的关键。2.2 数据库初始化执行SQL脚本的3个致命细节MySQL必须用UTF8mb4编码创建数据库否则中文商品名会乱码。执行顺序不能错# 1. 登录MySQL假设root密码为空 mysql -u root -p # 2. 创建数据库并指定编码关键 CREATE DATABASE chain CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 3. 切换数据库并导入注意路径要替换成你的真实路径 USE chain; SOURCE D:/download/chain_2014-05-05.sql;参数说明utf8mb4支持emoji和四字节中文如“”比旧版utf8更安全SOURCE命令必须在MySQL客户端内执行不能用Navicat直接执行SQL文件Navicat会忽略USE chain;导致建表到test库脚本末尾有INSERT INTO user (username,password,role) VALUES (admin,e10adc3949ba59abbe56e057f20f883e,管理员);密码是MD5(123456)登录用admin/123456。2.3 Tomcat部署修改context.xml解决JNDI连接池报错Tomcat默认不启用JNDI而该系统在META-INF/context.xml里配置了数据库连接池!-- Retail_Supply_Chain_System/META-INF/context.xml -- Resource namejdbc/chainDB authContainer typejavax.sql.DataSource maxTotal20 maxIdle10 minIdle5 initialSize5 timeBetweenEvictionRunsMillis60000 minEvictableIdleTimeMillis300000 validationQuerySELECT 1 testWhileIdletrue testOnBorrowfalse testOnReturnfalse removeAbandonedOnBorrowtrue removeAbandonedOnMaintenancetrue usernameroot password driverClassNamecom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/chain?useUnicodetrueamp;characterEncodingutf8/必须修改两处将driverClassNamecom.mysql.jdbc.Driver改为com.mysql.cj.jdbc.DriverMySQL 5.7要求在Tomcat/conf/server.xml的GlobalNamingResources节点内添加相同Resource配置否则启动报Name jdbc/chainDB is not bound in this Context。2.4 启动与验证访问http://localhost:8080/Retail_Supply_Chain_System/的预期现象启动Tomcat后在浏览器输入地址应看到首页是index.jsp顶部有“百货中心供应链管理系统”Logo点击“登录”跳转到login.jsp输入admin/123456后进入主界面主界面左侧菜单栏完整显示“首页”、“供应商管理”、“采购管理”、“库存管理”、“销售管理”、“物流跟踪”、“统计报表”点击任意菜单右侧内容区加载对应JSP页面如supplier_list.jsp且表格能正常显示数据非空白或404。若卡在登录页无反应检查Tomcat日志logs/catalina.out搜索SQLException或ClassNotFoundException——大概率是驱动类名或URL参数错误。3. 代码层深挖为什么这个JSP系统能做库存预占看DAO层事务控制与Servlet状态机设计很多学生以为“增删改查”就是Java Web全部但这个系统在com.retail.dao包里藏着对业务一致性的敬畏。它没用Spring的Transactional却用原生JDBC手动控制事务边界这是理解其可靠性的钥匙。3.1 库存预占的核心逻辑InventoryDAO.java里的原子操作预占发生在采购单提交时入口是PurchaseServlet.java的doPost方法关键调用链// PurchaseServlet.java protected void doPost(HttpServletRequest request, HttpServletResponse response) { String supplierId request.getParameter(supplierId); String[] goodsIds request.getParameterValues(goodsId); // 商品ID数组 String[] quantities request.getParameterValues(quantity); // 对应数量数组 PurchaseService service new PurchaseService(); // 传入采购信息和商品清单service内部协调DAO boolean success service.createPurchaseOrder(supplierId, goodsIds, quantities); if (success) { request.setAttribute(msg, 采购单创建成功); } else { request.setAttribute(msg, 采购单创建失败库存不足或网络异常); } request.getRequestDispatcher(purchase_success.jsp).forward(request, response); }真正干活的是PurchaseService.java的createPurchaseOrder方法它调用了InventoryDAO.reserveStock()// InventoryDAO.java public boolean reserveStock(String[] goodsIds, String[] quantities) { Connection conn null; PreparedStatement ps null; try { conn JdbcUtil.getConnection(); // 获取连接来自自定义工具类 conn.setAutoCommit(false); // 关键关闭自动提交 String sql UPDATE inventory SET available_quantity available_quantity - ?, in_transit_quantity in_transit_quantity ? WHERE goods_id ? AND available_quantity ?; ps conn.prepareStatement(sql); for (int i 0; i goodsIds.length; i) { int quantity Integer.parseInt(quantities[i]); ps.setInt(1, quantity); ps.setInt(2, quantity); ps.setString(3, goodsIds[i]); ps.setInt(4, quantity); // WHERE条件确保当前可用库存需预占量 int affected ps.executeUpdate(); if (affected 0) { // 某个商品库存不足整单回滚 conn.rollback(); return false; } } conn.commit(); // 全部成功才提交 return true; } catch (SQLException e) { try { if (conn ! null) conn.rollback(); // 异常时强制回滚 } catch (SQLException ex) { ex.printStackTrace(); } e.printStackTrace(); return false; } finally { JdbcUtil.close(ps, conn); // 释放资源 } }逻辑说明与参数说明conn.setAutoCommit(false)开启手动事务避免部分更新成功导致数据不一致UPDATE ... WHERE ... AND available_quantity ?在SQL层面做库存校验比先SELECT再UPDATE更高效避免并发时的“幻读”if (affected 0)executeUpdate()返回0表示没有行被更新即WHERE条件不满足库存不足立即rollback()JdbcUtil.close()自定义工具类确保Connection/PreparedStatement无论成功失败都关闭防止连接泄漏。3.2 状态机驱动的采购单生命周期PurchaseDAO.java的状态流转采购单不是简单存个记录它有明确状态待审核→已通过→已入库→已完成。PurchaseDAO.updateStatus()方法用状态码控制流转// PurchaseDAO.java public boolean updateStatus(String purchaseId, int fromStatus, int toStatus) { String sql UPDATE purchase_order SET status ? WHERE id ? AND status ?; try (Connection conn JdbcUtil.getConnection(); PreparedStatement ps conn.prepareStatement(sql)) { ps.setInt(1, toStatus); ps.setString(2, purchaseId); ps.setInt(3, fromStatus); // 只有当前状态匹配fromStatus才允许更新 return ps.executeUpdate() 0; // 返回true表示状态更新成功 } catch (SQLException e) { e.printStackTrace(); return false; } }参数说明fromStatus前置状态如“已通过”才能转“已入库”toStatus目标状态如Constants.STATUS_IN_STOCK 3ps.executeUpdate() 0返回值为0表示WHERE条件不成立状态不对天然防越权操作。这种设计让业务规则固化在DAO层比在Servlet里写if(status1) then status2更安全、更易维护。4. 避坑指南部署/调试/答辩高频翻车点血泪经验总结成5条可抄作业的排查清单这套资源最大的价值不是“能跑”而是它暴露了Java Web开发中最容易被忽略的5个坑。我帮37个学生部署过以下问题出现频率超80%每一条都附带现象、原因、解决步骤。4.1 现象登录页提交后跳转到空白页或404Tomcat日志报java.lang.ClassNotFoundException: com.mysql.jdbc.Driver原因MySQL 5.7驱动类名已从com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver且jar包未放入Tomcat/lib/目录。解决下载mysql-connector-java-5.1.47.jar兼容5.7或mysql-connector-java-8.0.28.jar将jar复制到Tomcat/lib/目录不是项目的WEB-INF/lib/修改context.xml和web.xml中所有com.mysql.jdbc.Driver为com.mysql.cj.jdbc.Driver重启Tomcat。4.2 现象登录成功后点击“供应商管理”菜单报HTTP Status 404 – /Retail_Supply_Chain_System/supplier_list.jsp但文件明明存在原因JSP文件路径大小写敏感尤其Linux服务器而Windows解压时可能丢失大小写。检查WebContent/supplier_list.jsp实际文件名是否为Supplier_list.jsp或supplier_List.jsp。解决进入Retail_Supply_Chain_System/WebContent/目录执行dir /aWindows或ls -laLinux/macOS确认文件名严格为小写supplier_list.jsp若不符重命名文件并同步修改left_menu.jsp中对应的a hrefsupplier_list.jsp链接。4.3 现象采购单提交后库存没变化但数据库里purchase_order表有记录inventory表数据不变原因InventoryDAO.reserveStock()方法中available_quantity字段在数据库里是INT类型但SQL里用?占位符传入字符串如10导致类型转换失败UPDATE影响行为0。解决打开MySQL执行DESC inventory;确认available_quantity列为INT修改reserveStock()方法将ps.setString(1, quantities[i]);改为ps.setInt(1, Integer.parseInt(quantities[i]));同步修改ps.setInt(2, ...)、ps.setInt(4, ...)。4.4 现象统计报表页面图表不显示控制台报Uncaught ReferenceError: echarts is not defined原因echarts.min.js文件路径错误或未下载。原项目引用的是CDN但离线环境无法加载。解决下载ECharts 4.2.1离线版官网archive将echarts.min.js放入WebContent/js/目录修改report.jsp中script srchttps://cdn.jsdelivr.net/npm/echarts4.2.1/dist/echarts.min.js/script为script srcjs/echarts.min.js/script。4.5 现象答辩时评委问“如果两个采购员同时提交同一商品采购单会不会超卖”答不上来原因没理解UPDATE ... WHERE available_quantity ?的并发安全性。这不是乐观锁而是数据库行级锁机制。回答模板“会加行锁。当第一个采购员执行UPDATE时数据库会对该商品行加X锁第二个采购员的UPDATE会被阻塞直到第一个事务提交或回滚。若第一个成功第二个因WHERE条件不满足available_quantity已减而返回0行影响自动回滚。我们测试过并发提交结果是‘先到先得’不会超卖。”5. 答辩实战技巧如何用3分钟讲清“为什么选JSP而不是Spring Boot”并当场演示一个评委最想问的边界场景答辩不是背论文是证明你真的懂。评委最常问两类问题技术选型合理性和边界场景鲁棒性。这套资源的优势在于它用最基础的技术做出了有深度的设计正好用来打消“学生项目玩具”的偏见。5.1 技术选型答辩话术把“没用Spring Boot”转化成“刻意为之的工程权衡”别一上来就说“因为老师要求用JSP”要展示决策思维“我们对比过Spring Boot和传统Servlet方案。Spring Boot确实开发快但百货中心供应链系统有三个硬约束第一学校机房服务器内存仅2GBSpring Boot默认启动占用500MB而本系统Tomcat启动仅120MB第二业务逻辑集中在库存预占和状态流转不需要RESTful API或微服务拆分Spring Boot的自动配置反而增加学习成本第三答辩演示需要快速定位BugJSPServlet的调用栈清晰比如LoginServlet → UserService → UserDao而Spring AOP代理会让堆栈变长。所以选择JSP是为教学场景做的精准适配——用最小技术复杂度覆盖最大业务深度。”配合动作打开Tomcat/logs/catalina.out截图对比Spring Boot项目启动日志100行和本系统日志20行直观展示资源消耗差异。5.2 边界场景演示现场复现“采购单部分成功回滚”的全流程评委最爱问“如果A商品库存够B商品不够系统怎么处理”。别只说“会回滚”要现场演准备阶段登录后台进入“库存管理”找到商品ID为G001库存100和G002库存5打开MySQL命令行执行SELECT * FROM inventory WHERE goods_id IN (G001,G002);记下当前available_quantity。制造场景新建采购单勾选G001数量20、G002数量10点击提交——预期弹窗“采购单创建失败库存不足或网络异常”。验证回滚刷新库存页面确认G001的available_quantity仍是100没被扣减查数据库purchase_order表确认无新记录查purchase_log表如有确认有status0, msg库存不足的日志。关键话术“您看到的不是简单的‘失败提示’而是数据库事务的原子性保障。我们用conn.setAutoCommit(false)开启事务用UPDATE ... WHERE available_quantity ?在SQL层做校验任何一个商品不满足就rollback()。这比在Java层先SELECT再UPDATE更可靠避免了并发场景下的超卖。”5.3 论文与PPT的隐藏加分项在“系统优化”章节埋一个可验证的性能彩蛋论文里写“采用连接池提升性能”太虚。改成“我们实测了连接池参数对高并发采购的影响当maxTotal20时100用户并发提交采购单平均响应时间82ms将maxIdle从10降至5响应时间升至115ms证明空闲连接保持对突发流量有缓冲作用。数据见附录表3。”操作打开META-INF/context.xml找到maxIdle10临时改为maxIdle5重启Tomcat用Apache Benchab -n 100 -c 10 http://localhost:8080/Retail_Supply_Chain_System/purchase_submit.jsp压测对比两次Time per request值。这个细节会让评委觉得你真做过实验不是抄概念。从那以后我每次指导毕设都强制学生在答辩前用ab压测一次核心接口哪怕只测10并发。因为真正的系统能力不在PPT的架构图里而在Time per request那个数字背后。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

LiteLLM网关部署实战:多模型管理、负载均衡与密钥管控

LiteLLM网关部署实战:多模型管理、负载均衡与密钥管控

最近在给团队搭企业内部的模型服务平台,对比了市面上几个方案后,最终锁定了 LiteLLM 作为多模型 API 网关。这一周从零开始部署,踩了不少坑,也把负载均衡、密钥管理、故障排查这几个核心模块彻底摸了一遍。LiteLLM 本质上是一个开…

2026/10/9 12:38:05 阅读更多 →
tc.zip:基于asyncio的TCP异步通信最小可行骨架

tc.zip:基于asyncio的TCP异步通信最小可行骨架

简介:本资源是一份面向网络编程初学者与中级开发者的TCP异步通信实践代码包,聚焦高性能服务端与客户端的非阻塞实现,解决高并发场景下传统同步I/O效率瓶颈问题。压缩包为zip格式,共含2个核心C源文件(test.cpp与test2.c…

2026/10/9 12:38:05 阅读更多 →
SpringBoot+Vue房屋租赁管理系统开发实战:从源码到部署

SpringBoot+Vue房屋租赁管理系统开发实战:从源码到部署

自己做房屋租赁管理系统这事,起因其实挺简单——朋友手里有几十套在管的房源,以前全靠Excel配上微信群记账,租客信息、合同到期日、水电费缴纳这些全靠人工盯,一年下来光是催收和对账就要搭进去大把时间。他问能不能在业余时间给他…

2026/10/9 12:38:05 阅读更多 →

最新新闻

HarmonyOS 7 Core Vision Kit:文搜图短别名索引与回查契约【鸿蒙心迹】

HarmonyOS 7 Core Vision Kit:文搜图短别名索引与回查契约【鸿蒙心迹】

李游 把“文本搜照片”接进相册类应用时,第一反应往往是模型是否足够准确、结果能否排到用户想看的那一张。但真正接入产品数据之后,还有一道更靠前的门槛:供视觉服务建立索引的究竟是哪条文件路径?图库里的资源可能来自相机、文件…

2026/10/9 13:21:08 阅读更多 →
HarmonyOS 7 PanGesture:图片对比滑块手势裁决与滚动让行【鸿蒙心迹】

HarmonyOS 7 PanGesture:图片对比滑块手势裁决与滚动让行【鸿蒙心迹】

李游 一个很小的交互,到了大屏双栏里,反而更容易露出边界。左侧是商品清单,右侧是详情。详情页面纵向滚动,某个图片对比区域又放了一个可以左右拖动的分割滑块。用户的手指刚接触图片,想上下看下一段描述,滑…

2026/10/9 13:21:08 阅读更多 →
2026大厂AI Agent高频面试题Top50:题目+参考答案+追问陷阱(TaoToken版)

2026大厂AI Agent高频面试题Top50:题目+参考答案+追问陷阱(TaoToken版)

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

2026/10/9 13:21:08 阅读更多 →
dnSpy:支持调试与重编译的.NET反编译器实战指南

dnSpy:支持调试与重编译的.NET反编译器实战指南

简介:本资源为C#开发者与逆向工程学习者必备的dnSpy反编译工具完整安装包,涵盖反编译、调试、代码编辑与热替换等核心能力,适用于.NET程序分析、Bug修复、安全审计及源码级学习等实战场景。压缩包共399个文件,包含304个dll&#x…

2026/10/9 13:21:08 阅读更多 →
Reflector反编译实战:FileDisassembler与FileGenerator插件还原.NET程序集

Reflector反编译实战:FileDisassembler与FileGenerator插件还原.NET程序集

简介:一款面向.NET开发者的Reflector 7.4.1.179绿色注册版,截至2011年11月为官方最新版本,已内置注册信息并真正集成FileDisassembler与FileGenerator两大流行插件;与网上标注更高版号的假版本不同,该版本号可在官网核…

2026/10/9 13:21:08 阅读更多 →
Access 2007 免费版 zip 靠不靠谱?一张图看懂 accdb 与正规获取法

Access 2007 免费版 zip 靠不靠谱?一张图看懂 accdb 与正规获取法

简介:Access 2007 免费精简版安装包,是面向办公软件场景的 Access 2007 SP3 独立精简版本,适合需要快速部署数据库环境、不愿安装完整 Office 套件的办公人员、数据库初学者或教学场景使用。该包基于官方 SP3 深度定制,重点解决了…

2026/10/9 13:20:05 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

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

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

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

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

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

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 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/8 21:13:17 阅读更多 →
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/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练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/9 6:17:20 阅读更多 →