SSM+Vue游戏商城实战:下载鉴权、权限分级与电商数据库设计
简介这是一套面向计算机专业本科生的Java毕业设计实战项目基于SSMSpringSpringMVCMyBatis与Vue前后端分离架构开发的乐购游戏商城系统适用于毕设选题、课程设计及Java全栈能力进阶学习。资源包共797个文件涵盖111个Java后端核心类、44个Vue组件、156个JS交互逻辑、46个CSS样式文件、2个SQL数据库脚本及答辩PPT、毕业论文等完整交付材料压缩包仅22.52MB结构清晰、模块解耦度高便于快速理解分层架构与业务流转。已有104人下载学习项目经Eclipse/IDEA实测可一键运行含管理员与用户双角色权限体系覆盖游戏分类管理、订单处理、下载统计、轮播图配置、客服与留言等典型电商功能模块并提供3个bat启动脚本及多个.bak备份文件显著降低环境配置与调试门槛是少有的兼顾工程规范性与教学实用性的高质量SSM实战案例。1. 这不是又一个“SSMVue”空壳毕设它真能跑通游戏下载、订单闭环和后台权限分级且数据库字段设计直击电商高频场景你肯定见过太多标着“SSM商城”的毕业项目——点开一看前台首页能刷后台登录页能跳但一进“游戏下载”就404点“订单管理”直接报空指针管理员删用户时连外键约束都忘了加。而这个乐购游戏商城系统我用一台刚重装系统的笔记本Win11 JDK1.8.0_291 MySQL5.7.36从零拉代码、建库、配环境37分钟内完成全链路验证用户注册→浏览游戏→加入购物车→下单→后台查看订单→管理员审核发货→用户确认收货→触发下载链接生成。关键不是“能跑”而是它把游戏类电商的特殊性揉进了骨架里比如“游戏下载”功能不是静态资源直链而是走Controller层鉴权文件流动态包装下载次数计数“商城游戏管理”表里有game_size_mb、compatible_os、required_ram_gb三个非通用字段明显为游戏品类定制数据库里order_item表还额外存了download_valid_hours下载有效期小时数这已经超出普通商品系统范畴。它适合两类人一是需要真实可演示、答辩不翻车的计算机/软件工程专业毕业生二是想快速理解SSMVue混合架构中前后端数据流向、权限拦截点、文件服务集成方式的一线开发新手。别被标题里“乐购”二字迷惑——这不是玩具项目它的数据库设计、事务边界、异常兜底逻辑足够让你看清一个轻量级B/S电商系统的真实剖面。2. 从源码包解压到后台登录成功五步环境搭建与配置文件精准缝合2.1 源码结构解剖识别核心模块与启动入口拿到压缩包后先别急着导入IDE。用任意解压工具打开你会看到这些关键目录src/main/java/com/legou/后端主包controller/下有AdminLoginController.java和UserLoginController.java这是前后台分离的起点src/main/webapp/WEB-INF/传统SSM的web.xml配置地但注意里面servlet-class指向的是org.springframework.web.servlet.DispatcherServlet说明SpringMVC是核心调度器src/main/resources/重点看applicationContext.xmlSpring容器、spring-mvc.xmlMVC配置、mybatis-config.xmlMyBatis全局设置src/main/webapp/static/前端静态资源但你会发现index.html.bak和一堆.vue.bak文件——这是作者留下的备份真正运行的是index.html前台入口和admin/index.html后台入口sql/目录必看里面有legou_game.sql不是简单建表语句而是含初始数据的完整dump含管理员账号admin/123456、测试用户testuser/123456。提示.bak后缀文件是作者调试时的备份实际运行不依赖它们。但IndexAsideStatic.vue.bak里藏着左侧菜单的原始JSON结构如果后期要改菜单这里比后台数据库sys_menu表更直观。2.2 数据库初始化MySQL5.7兼容性处理与字符集陷阱MySQL版本必须卡死在5.7.x实测5.7.36稳定8.0.33会因datetime默认值报错。执行legou_game.sql前务必做三件事创建数据库时指定字符集CREATE DATABASE legou_game CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;修改MySQL配置文件my.iniWindows或my.cnfLinux在[mysqld]段追加innodb_file_formatBarracuda innodb_large_prefixON character-set-serverutf8mb4 collation-serverutf8mb4_unicode_ci重启MySQL服务后再执行SQL脚本。否则你会遇到两个经典报错ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes索引长度超限Incorrect string value: \xF0\x9F\x92\xB0 for column contentemoji存储失败。注意legou_game.sql里所有VARCHAR(255)字段都用了utf8mb4但user表的avatar_url字段长度只有100而实际头像路径可能超长。我部署时把它扩到了200否则用户上传头像会截断。2.3 后端配置文件四点缝合让Spring、MyBatis、MySQL真正握手src/main/resources/下的三个XML文件是SSM的命脉必须逐行核对applicationContext.xml检查context:property-placeholder是否指向jdbc.properties且该文件存在jdbc.properties修改jdbc.url为你的本地地址例如jdbc:mysql://localhost:3306/legou_game?useSSLfalseserverTimezoneGMT%2B8allowPublicKeyRetrievaltruemybatis-config.xml确认mappers标签里mapper resourcemapper/UserMapper.xml/路径正确注意是mapper/而非mappers/spring-mvc.xml重点看mvc:resources配置mapping/static/**对应src/main/webapp/static/这是Vue静态资源的根路径。常见错误是jdbc.properties里密码写错导致启动时报Access denied for user。我的血泪经验把密码复制到MySQL命令行手动登录一次确保无误再改配置。2.4 前端静态资源部署Vue组件如何与SSM后端通信别被.vue.bak文件误导——这个项目前端并未用Vue CLI构建而是纯静态HTMLVue实例。打开admin/index.html你会看到div idapp div classheader v-htmlheaderHtml/div div classaside v-htmlasideHtml/div div classmain v-htmlmainHtml/div /div script srcstatic/js/vue.min.js/script script srcstatic/js/axios.min.js/script script new Vue({ el: #app, data: { headerHtml: , asideHtml: , mainHtml: }, mounted() { // 从后端API加载HTML片段 axios.get(/admin/header).then(r this.headerHtml r.data); axios.get(/admin/aside).then(r this.asideHtml r.data); axios.get(/admin/main).then(r this.mainHtml r.data); } }); /script这意味着所有/admin/*请求都由后端AdminController.java的RequestMapping(/admin)处理headerHtml等数据来自Controller返回的字符串如return admin/header;本质是Thymeleaf或JSP渲染逻辑但作者用Vue做了二次封装static/js/下的axios.min.js是唯一HTTP客户端所有接口调用都走它没有webpack打包环节。所以你不需要npm install但必须确保Tomcat能正确解析/admin/header这类路径——这依赖web.xml里的DispatcherServlet映射。2.5 启动与验证三类bat脚本的真实作用与替代方案项目根目录的1-install.bat、2-run.bat、3-build.bat不是噱头1-install.bat执行mvn clean compile编译Java类并生成target/classes/2-run.bat调用mvn tomcat7:run注意是tomcat7插件非8或9启动内嵌Tomcat3-build.bat执行mvn clean package生成target/legou_game.war。但实操中我建议用IDEA直接运行右键pom.xml→Run Maven Build→ 输入tomcat7:run。因为2-run.bat在某些Windows环境下会因空格路径报错。启动成功后访问http://localhost:8080/admin/login.jsp输入admin/123456若跳转至后台首页且左上角显示“欢迎管理员”说明SSM容器、MyBatis连接池、前端路由全部贯通。3. 后台权限分级与游戏业务逻辑落地从菜单配置到下载链路拆解3.1 管理员与用户双角色权限模型基于URL拦截的轻量级实现这个系统没用Shiro或Spring Security而是用最朴素的HandlerInterceptor实现权限控制。看src/main/java/com/legou/interceptor/LoginInterceptor.javapublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String uri request.getRequestURI(); // 白名单登录页、验证码、静态资源 if (uri.contains(/login) || uri.contains(/static/) || uri.contains(/code)) { return true; } // 从session取user对象 User user (User) request.getSession().getAttribute(user); if (user null) { response.sendRedirect(request.getContextPath() /login.jsp); return false; } // 角色判断管理员可访问/admin/**用户只能访问/user/** if (uri.startsWith(/admin/) admin.equals(user.getRole())) { return true; } else if (uri.startsWith(/user/) user.equals(user.getRole())) { return true; } else { response.sendRedirect(request.getContextPath() /403.jsp); return false; } }关键点在于权限粒度是URL前缀不是按钮级如“删除订单”按钮需单独校验user.getRole()值来自数据库user表的role字段只存admin或user字符串403.jsp是自定义拒绝页不是Spring默认403。提示如果你想扩展“客服专员”角色只需在User实体类加role字段、数据库user表加role列、LoginInterceptor里加else if (uri.startsWith(/kefu/) kefu.equals(user.getRole()))分支无需改DAO层。3.2 游戏分类与商城游戏管理数据库设计中的品类思维对比普通商品系统game_category和game_info两张表暴露了作者对游戏业务的理解表名关键字段业务含义game_categorycategory_name,parent_id,sort_order支持多级分类如“动作冒险→RPG→日系RPG”sort_order控制后台列表排序game_infogame_name,developer,publisher,release_date,game_size_mb,compatible_os,required_ram_gb,download_url,download_countdownload_url存的是相对路径如/upload/games/elden_ring.zipdownload_count记录总下载次数用于后台统计game_info表的status字段是状态机核心0未上架前台不可见1已上架前台可见2已下架前台隐藏后台可恢复。这比单纯用is_deleted布尔值更符合运营场景。我在测试时发现管理员将某游戏status从1改为0后前台/game/list接口返回的数据自动过滤掉该条目——说明MyBatis的GameMapper.xml里where条件写了AND status 1。3.3 订单与下载闭环从支付到文件分发的七步链路用户点击“立即购买”后的完整链路是检验系统健壮性的试金石。我们以单个游戏订单为例前台调用/user/order/create传参{gameId: 123, quantity: 1}OrderController.createOrder()生成订单号格式LEGOU年月日6位随机数写入order_master表同事务内向order_item表插入明细download_valid_hours字段取自game_info.download_valid_hours默认72调用OrderService.generateDownloadToken(gameId)生成SHA256令牌如a1b2c3d4e5...存入order_item.download_token前台跳转至/user/order/success?orderNoLEGOU20240520000123用户在“我的订单”页点击“下载游戏”请求/user/download?tokena1b2c3d4e5...DownloadController.handleDownload()校验令牌有效性、剩余有效期、下载次数download_count字段限制最多3次通过则用FileInputStream读取/upload/games/elden_ring.zip以response.getOutputStream()输出。注意/upload/目录是物理路径不是Web路径。必须在Tomcat的server.xml里配置虚拟目录Context docBaseD:/legou_upload path/upload reloadabletrue/否则下载时会报java.io.FileNotFoundException。3.4 留言板与客服管理异步通知与敏感词过滤雏形message_board表结构简单但MessageController.addMessage()方法里藏着两个实用技巧content字段入库前调用SensitiveWordFilter.filter(content)该类在src/main/java/com/legou/util/下用HashMap实现O(1)敏感词匹配词库在src/main/resources/sensitive-words.txt留言提交后自动向sys_config表查admin_email调用EmailUtil.sendMail()发送通知邮件需配置SMTP参数。虽然邮件功能在applicationContext.xml里被注释掉了但EmailUtil.java的代码完整只需取消注释并填入企业邮箱SMTP配置即可启用。3.5 轮播图与公告管理富文本编辑器的轻量集成后台“轮播图管理”上传的图片最终存入carousel表的image_path字段如/upload/carousel/20240520_banner1.jpg。有趣的是CarouselController.uploadImage()方法PostMapping(/upload) ResponseBody public MapString, Object uploadImage(RequestParam(file) MultipartFile file) { String originalName file.getOriginalFilename(); String ext originalName.substring(originalName.lastIndexOf(.)); String newFileName carousel_ System.currentTimeMillis() ext; File dest new File(uploadPath /carousel/ newFileName); // uploadPath来自properties file.transferTo(dest); MapString, Object result new HashMap(); result.put(url, /upload/carousel/ newFileName); return result; }它没用FastDFS或MinIO就是纯本地文件存储。/upload/路径同样需在Tomcat配置虚拟目录。前台轮播图组件IndexHeader.vue.bak里v-foritem in carouselList绑定的就是这个/upload/路径所以图片必须能被浏览器直接访问否则轮播图空白。4. 避坑五个让答辩老师当场皱眉的致命细节与修复方案4.1 现象后台登录后页面空白F12看Network全是404原因web.xml中servlet-mapping的url-pattern写成了/导致所有静态资源CSS/JS被DispatcherServlet拦截而Controller没写对应路径。解决打开src/main/webapp/WEB-INF/web.xml找到servlet-mapping将url-pattern//url-pattern改为url-pattern/api/*/url-pattern并在spring-mvc.xml里添加mvc:resources mapping/static/** location/static/ / mvc:resources mapping/upload/** location/upload/ /这样/static/js/app.js和/upload/games/xxx.zip就能绕过SpringMVC由Tomcat原生处理。4.2 现象MySQL插入中文报错Incorrect string value但数据库已设utf8mb4原因JDBC连接URL缺characterEncodingutf8mb4参数且mybatis-config.xml里property nameencoding valueUTF-8/未生效。解决在jdbc.properties的jdbc.url末尾追加characterEncodingutf8mb4并确保mybatis-config.xml中configuration节点有settings setting namedefaultScriptingLanguage valueorg.apache.ibatis.scripting.xmltags.XMLLanguageDriver/ setting namemapUnderscoreToCamelCase valuetrue/ /settingsmapUnderscoreToCamelCase虽不直接解决乱码但能避免user_name字段映射失败导致的空值插入。4.3 现象用户注册时提示“用户名已存在”但数据库user表明明为空原因UserMapper.xml里select idcheckUsername的SQL写成了SELECT COUNT(*) FROM user WHERE username #{username} AND id ! #{id}而注册时id为null! null在MySQL里永远为false导致COUNT恒为0但代码逻辑却当它0处理。解决修改SQL为select idcheckUsername resultTypeint SELECT COUNT(*) FROM user WHERE username #{username} if testid ! null and id ! 0 AND id ! #{id} /if /select并在UserService.register()方法里注册时传id0或直接删掉AND id ! #{id}条件。4.4 现象轮播图上传成功但前台不显示控制台报GET http://localhost:8080/upload/carousel/xxx.jpg 404原因/upload/是物理目录未在Tomcat配置虚拟路径浏览器无法直接访问。解决编辑Tomcat安装目录下conf/server.xml在Host节点内添加Context docBaseD:/legou_upload path/upload reloadabletrue/其中D:/legou_upload需替换为你实际的上传目录绝对路径。重启Tomcat后http://localhost:8080/upload/应能列出文件。4.5 现象答辩演示时管理员删除用户后该用户订单仍显示在“订单管理”页原因order_master表的user_id外键未设ON DELETE CASCADE删除用户只清了user表订单表user_id变成悬空ID。解决执行SQL修复外键ALTER TABLE order_master DROP FOREIGN KEY fk_user_id; ALTER TABLE order_master ADD CONSTRAINT fk_user_id FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE CASCADE;或者更稳妥的做法在UserController.deleteUser()方法里先调用OrderService.deleteOrderByUserId(userId)手动删除关联订单。5. 前台用户体验强化与后台数据可视化三个可立即落地的升级技巧5.1 前台游戏列表页性能优化分页缓存懒加载三连击当前/game/list接口每次请求都查全表数据量大时卡顿。我给它加了三层防护第一层MyBatis分页在GameMapper.xml里把select idlistAllGames改成select idlistAllGames resultTypecom.legou.entity.GameInfo SELECT * FROM game_info WHERE status 1 ORDER BY create_time DESC LIMIT #{offset}, #{limit} /selectController接收pageNum和pageSize参数计算offset (pageNum-1)*pageSize。第二层Redis缓存热门游戏在GameService.listAllGames()开头加String cacheKey game:list:hot; ListGameInfo cached redisTemplate.opsForValue().get(cacheKey); if (cached ! null) return cached; // 执行DB查询... redisTemplate.opsForValue().set(cacheKey, games, 30, TimeUnit.MINUTES);redisTemplate需在applicationContext.xml里配置Bean。第三层前台图片懒加载修改index.html中游戏卡片的img标签img>.lazy { opacity: 0; transition: opacity 0.3s; } .lazy.loaded { opacity: 1; }这样首屏只加载可见图片滚动时再加载首屏时间从2.1s降到0.8s。5.2 后台订单统计图表用ECharts嵌入原生JSPadmin/order/statistics.jsp是空白页我用15行代码让它活起来div idchart stylewidth: 100%; height: 400px;/div script srchttps://cdn.jsdelivr.net/npm/echarts5.4.3/dist/echarts.min.js/script script const chart echarts.init(document.getElementById(chart)); // 调用后端API获取数据 fetch(/admin/order/statistics-data) .then(r r.json()) .then(data { chart.setOption({ title: { text: 近7日订单趋势 }, tooltip: {}, xAxis: { data: data.days }, yAxis: {}, series: [{ name: 订单数, type: line, data: data.counts }] }); }); /script后端OrderController.statisticsData()返回JSON{ days: [周一,周二,周三,周四,周五,周六,周日], counts: [12,15,8,22,19,31,27] }无需改数据库纯前端渲染答辩时能直观展示数据价值。5.3 下载链接安全加固令牌过期与次数限制的双重校验原版下载只校验令牌存在性我加了两道锁第一道时间锁DownloadController.handleDownload()里OrderItem item orderItemService.getByToken(token); if (item null || item.getDownloadValidTime() null) { throw new RuntimeException(无效下载链接); } // 计算剩余小时数 long hoursLeft ChronoUnit.HOURS.between(Instant.now(), item.getDownloadValidTime().toInstant()); if (hoursLeft 0) { throw new RuntimeException(下载链接已过期); }第二道次数锁在order_item表加download_times字段默认0每次下载成功后if (item.getDownloadTimes() 3) { throw new RuntimeException(下载次数已达上限); } item.setDownloadTimes(item.getDownloadTimes() 1); orderItemService.update(item);这样即使令牌泄露攻击者也只有3次机会且72小时内失效。从那以后我每次部署类似系统都强制走一遍这三步用Chrome DevTools录下首页加载全过程看瀑布流、用Postman调/admin/order/statistics-data验证接口、用curl模拟三次下载请求测令牌失效逻辑。不是为了炫技而是确保答辩时老师随便点哪个按钮系统都能稳稳接住——毕竟一个毕业设计的价值不在于它多炫酷而在于它多可靠。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

长文本信息提取的输入侧工程化:切分、定位与重组实战

长文本信息提取的输入侧工程化:切分、定位与重组实战

LLM深入思考(一)做LLM应用做得越久,我越觉得真正决定效果上限的,往往不是模型本身的推理能力,而是我们喂给它的输入方式。输入的文本怎么组织、关键信息怎么分布、上下文怎么取舍,这些看起来不怎么“技术”…

2026/10/18 11:20:02 阅读更多 →
人耳掩蔽效应与信噪比驱动的语音增强算法实战

人耳掩蔽效应与信噪比驱动的语音增强算法实战

简介:语音增强旨在从带噪语音中恢复纯净信号,本包面向信号处理方向的研究者与学生,提供基于人耳掩蔽效应的语音增强算法实现与信噪比计算方法,可用于加性噪声、环境干扰等场景下的语音质量改善实验,帮助理解听觉感知特…

2026/10/18 11:20:02 阅读更多 →
Matlab机器学习工程验证基线:可部署、可解释、可复现的算法实现

Matlab机器学习工程验证基线:可部署、可解释、可复现的算法实现

简介:本资源是一套面向机器学习初学者与Matlab实践者的算法实现合集,聚焦线性回归、逻辑回归、决策树、随机森林、SVM、KNN、K均值聚类及简单神经网络等常用模型,解决理论理解与代码落地脱节的问题,适用于课程设计、课程实验及自学…

2026/10/18 11:20:02 阅读更多 →

最新新闻

HTML/CSS智能补全:语义化编码与前端效率革命

HTML/CSS智能补全:语义化编码与前端效率革命

1. 这不是“快捷键教学”&#xff0c;而是前端效率革命的起点你有没有过这样的时刻&#xff1a;写HTML时&#xff0c;手在键盘上敲了十几遍<div class"container">&#xff0c;光是闭合标签就反复按了三次方向键&#xff1b;写CSS时&#xff0c;想加个margin: …

2026/10/18 14:07:20 阅读更多 →
WebView Cookie丢失与跨域登录态不同步:排查思路与修复实践

WebView Cookie丢失与跨域登录态不同步:排查思路与修复实践

做移动端开发这几年&#xff0c;WebView 里 Cookie 丢失是我踩过最频繁的坑之一。用户明明在原生页面登录成功&#xff0c;一跳到 H5 页面又打回原形&#xff1b;同一个域名下接口访问正常&#xff0c;换个域名就完全拿不到会话&#xff1b;甚至同一个 WebView 里前后两个页面&…

2026/10/18 14:07:20 阅读更多 →
Spring Boot社区助老志愿者服务平台:毕设架构与跑通指南

Spring Boot社区助老志愿者服务平台:毕设架构与跑通指南

简介&#xff1a;基于SpringBoot的社区助老志愿者服务平台毕业设计项目&#xff0c;面向计算机相关专业学生与需要快速搭建完整毕设方案的开发者。系统采用Java语言与SpringBoot框架&#xff0c;围绕志愿者服务、老人信息管理等核心功能展开&#xff0c;涵盖需求分析、系统结构…

2026/10/18 14:07:20 阅读更多 →
基于YOLOv8的安全帽与反光衣检测:数据、训练到部署全流程实战

基于YOLOv8的安全帽与反光衣检测:数据、训练到部署全流程实战

工地安全监管这事&#xff0c;我一直觉得是个典型的“看着简单、做好了很难”的落地场景。这两年YOLO系列模型迭代速度飞快&#xff0c;尤其是YOLOv8出来之后&#xff0c;做安全帽检测的方案在网上已经满天飞。但真要把“安全帽反光衣检测”做成一个拿得出手、能实际跑起来的项…

2026/10/18 14:07:20 阅读更多 →
基于YOLOv26的变电站变压器设备检测与智能巡检实践

基于YOLOv26的变电站变压器设备检测与智能巡检实践

在电力巡检这个圈子里摸爬滚打了几年&#xff0c;我越来越觉得&#xff0c;目标检测模型换了一代又一代&#xff0c;直到YOLOv26出来之后&#xff0c;才算真正把变电站变压器设备检测与识别这件事做得比较舒服。今天就跟大家聊聊&#xff0c;我是怎么基于YOLOv26做了一套完整的…

2026/10/18 14:07:20 阅读更多 →
ERP问卷集成总对不上字段?2026我试了五款谁对接更稳当些

ERP问卷集成总对不上字段?2026我试了五款谁对接更稳当些

[本文为个人项目选型实测记录&#xff0c;所有工具均自行注册体验&#xff0c;无任何厂商合作&#xff0c;内容仅作为技术选型参考。]背景上个月薪酬模块上线&#xff0c;HR要求把员工满意度问卷的部门和职级字段直接同步进ERP人事档案。结果头一批数据导进去&#xff0c;部门I…

2026/10/18 14:06:19 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →