SSM+Vue流浪动物领养助养系统设计与实现全流程
做毕设选什么题目比怎么做更重要。我今年定的题目是“ssmvue流浪动物领养助养系统”后端用Spring、SpringMVC、MyBatis这套SSM框架前端用Vue再加上毕业论文和一套能跑起来的完整程序。整套做下来从数据库设计到领养状态流转从后端权限拦截到前端路由守卫基本把JavaWeb阶段该练的技术点都过了一遍而且选题本身贴近公益场景答辩时也容易讲出故事来。这篇文章就围绕这个系统把整体的设计思路、关键技术点、实操步骤和踩过的坑整理一遍适合正在选毕设题目、或者选了类似前后端分离项目但还没想清楚怎么落地的同学。1. 项目整体设计与核心功能拆解1.1 这类系统要解决的业务问题是什么写代码之前先把业务捋清楚不然你后面表结构都建不明白。流浪动物领养助养系统核心就三个参与方普通用户、管理员也就是救助站或协会工作人员、还有被救助的动物本身。用户侧要做的动作很简单——浏览待领养的动物、看到合眼缘的提交领养申请、没条件养但想帮忙的可以选择助养管理员侧要做的则是审核发布、管理动物信息、审核领养和助养申请、处理回访记录。这里最容易犯的错就是拿着键盘就开始建表做着做着发现领养申请没有状态管理或者一只动物可以同时被好几个人领养成功。所以我在设计初期把领养流程定成一个状态机用户提交申请、管理员审核通过或驳回、通过后安排线下接走、接走后进入回访期。这一步想清楚后面的接口设计、状态字段、前端按钮显示就都顺了。包括“助养”和“普通捐赠”的区别也是我画业务流程图的时候才猛然意识到要分开做捐赠是一次性动作助养是周期性承诺两者混在一张表里后期会很别扭。1.2 角色权限与业务闭环设计我把权限划分成三级游客只能看动物列表和详情注册用户能提交领养申请、查看申请进度、收藏动物管理员拥有全部后台功能包括动物录入、图片上传、申请审核、用户禁用、助养记录导出。实现层面是后端拦截器加前端路由守卫双层控制。只靠前端隐藏按钮是防不住接口遍历的这句话我在答辩的时候也讲给老师听算是这个小项目里少有的“安全设计”亮点。再往后围绕救助站实际运营场景我加了一个回访功能。领养不是把动物送出去就完事了正规流程需要在一个月左右回访确认动物生活状态是否正常。这个功能做出来无论在论文创新点还是答辩亮点上都很有价值而且实现成本不高就是一张回访记录表加上增删改查。加了回访模块之后整个系统在业务闭环上就比单纯“发布-申请”完整很多论文里也多了一小块可以详细展开的内容。1.3 助养模块与普通捐赠的差别我一开始把“助养”和“捐赠”放在同一个表里后来发现不合适。捐赠是一次性动作助养是有周期性的承诺比如按月或者按季度。所以我后来拆成了两张表助养产生一条持续状态记录到了下次到期时间系统会自动提醒管理员。这个小细节可能在答辩时被问到“助养和捐赠有什么区别”你要是能讲清楚为什么要分开设计绝对比背一堆概念管用得多。需求分析阶段我不建议直接用Word画流程图先用ProcessOn或者draw.io把用例图和数据流图拉出来改起来非常快。这个阶段花的时间越长后面写代码越省事。2. 技术方案选型为什么是SSM加Vue2.1 SSM框架的分工逻辑说SSM其实现在很多毕业设计已经用Spring Boot起步了但学校大纲里还常写SSM。我这里用的方案是Spring Boot做基础容器底层仍然是Spring SpringMVC MyBatis这套组合。换句话说你答辩的时候能说清楚Spring管Bean生命周期和依赖注入、SpringMVC管请求分发和参数绑定、MyBatis管持久层SQL映射那SSM的核心就讲明白了。用Spring Boot而不是老式XML配置主要是为了减少工作量。如果完全按几年前的老写法光spring-mvc.xml、mybatis-config.xml、web.xml这些配置文件就能把新手绕晕而且网上资料又杂又乱。现在用Spring Boot一个application.yml就能搞定大部分配置代码结构清爽但核心框架还是那几个。你论文里写“基于SSM框架”一点问题都没有。2.2 前端用Vue的取舍Vue适合这个项目的理由很实际毕设页面数量不少一个完整的后台管理界面加用户前台如果用JSP或原生JS写维护成本很高而且页面效果比较陈旧。Vue的组件化可以把动物卡片、申请表单、图片轮播拆成独立组件代码量减少页面也干净。从找工作的角度来说Vue也是目前前端岗位问卷率最高的框架之一。毕设里用上Vue Router和Pinia或者Vuex状态管理简历上就可以写“熟悉前后端分离开发模式了解Vue生态”。虽然毕业设计不等于真实项目但至少你亲手写过路由、组件、状态面试问到的时候能说个一二三四比只会跟着教程敲要强不少。2.3 前后端分离与请求交互方案前后端交互我用的是Axios开发环境配一个Vite或者vue.config.js代理来解决跨域。生产环境把前端打包后丢进Spring Boot的static目录一个jar包就能同时提供页面和接口对最后交程序和部署都非常方便。这个“vue打包放进springboot”的操作看起来土但确实适合毕设这种交付场景评委老师拿到项目只要一个命令启动不用再单独装Nginx。开发时前后端分开跑前端Vite默认端口5173后端Tomcat端口8080浏览器直接请求接口必然跨域。我的处理方式是在前端配置代理把/api开头的请求转发到localhost:8080。这样写代码的时候不用写全路径以后打包部署改起来也方便。具体配置后面实操章节会贴代码。2.4 为什么没有选更复杂的前后端分离方案有人会说都已经前后端分离了为什么不用uni-app做个APP或者再加个微服务网关我觉得毕设的定位是“完整但不过度设计”。如果说你做的是一个流浪动物领养助养系统业务规模就是一个小型救助站的日常运营强行上微服务、上Redis缓存反而会给自己挖坑论文里也不好自圆其说。技术方案的选型应该匹配业务复杂度这也是我一个做软件工程的朋友反复跟我强调的。3. 数据库设计与核心模块落地3.1 数据表规划表设计是整个项目最核心的工作我按角色和业务拆成下面这些核心表。表名用途关键字段user用户表id, username, password, role, phone, statuspet动物信息表id, name, type, gender, age, health, avatar, statusadoption_apply领养申请表id, user_id, pet_id, reason, status, create_timesponsor_plan助养计划表id, user_id, pet_id, amount, cycle, expire_timefeedback回访记录表id, adoption_id, content, next_timenotice公告表id, title, content, publish_time每张表我都加了create_time和update_time两个字段这个是基本操作。动物状态我定义成四种待领养、已申请、已领养、休息中。其中“休息中”这个状态容易被忽略——有些动物刚打完疫苗或者刚做完手术不适合马上进入领养流程要在列表里隐藏但数据库记录还在。在后端用一个int字段存状态码前端映射成文字和标签颜色。3.2 领养申请的状态机设计领养申请的状态我用int存储0待审核、1已通过、2已驳回、3已取消、4已完成。前端根据状态值渲染不同的标签样式和操作按钮。这里重点在于“已取消”状态用户可以在管理员审核前自行撤回申请这个逻辑不复杂但是很体现业务完整度。后端Service层里有一个审批通过的方法里面要同时做两件事把申请状态改为已通过把对应动物的状态改为已领养。我在这里踩过一个坑——一开始只改了申请表状态动物状态没跟着变结果用户再看动物列表这只动物还是“待领养”又被人提交了重复申请。后来把两步写在同一个方法里加上Transactional注解这个问题就彻底解决了。这个坑我建议你写进论文的“遇到的问题与解决”章节非常真实。3.3 助养、捐赠和公告模块助养模块的关键点在于周期处理。我建了sponsor_plan表记录计划金额、周期类型、下次扣款时间。模拟支付用的是状态字段打标记没有接真实第三方支付因为毕设阶段不必要也不会接真实支付。真要做支付还要考虑支付回调、对账、退款复杂度和安全要求会高出不少。当然我论文里写了“后续可扩展接入实际支付接口”这样的展望这也是毕设论文的常规操作。公告模块倒是简单管理员发布后前台展示。需要提醒的是公告内容我用了简单富文本编辑器存储的是HTML字符串前端用v-html渲染。有同学可能不知道用v-html渲染用户提交的HTML存在XSS风险如果攻击者在内容里插入一段脚本别人打开页面就会被执行。我这里做了输入过滤把script标签直接剥掉这也算一个安全设计点答辩的时候可以提。3.4 权限控制的实现方案后端我用SpringMVC的拦截器拦截URL并校验Session。简单方案就是登录成功后在Session里存user对象拦截器里判断是否登录再判断角色是不是管理员。一旦发现未登录或角色不符就返回JSON提示或者重定向到登录页。前端的路由守卫只负责体验层真正做安全保障的一定是后端。前端守卫我这里用的是Vue Router的beforeEach通过meta.role判断当前路由是否允许访问这属于锦上添花不能单独依赖它。具体到表设计用户表里加了一个role字段我用1代表管理员2代表普通用户。初始管理员账号在启动数据脚本里就插入好或者在首次启动时自动创建省得去数据库手动改。4. 实操过程与关键代码实现4.1 环境准备与工程初始化需要的环境JDK 8以上、Maven 3.6以上、Node.js 14以上、MySQL 5.7或8.0编辑器用IDEA和VS Code。后端工程我直接用Spring Boot的骨架来创建pom.xml里引了spring-boot-starter-web、mybatis-spring-boot-starter、mysql-connector-java、lombok另外加了Druid连接池开发时看SQL监控很方便。配置文件里主要改数据源、端口、文件上传大小上限。前端用Vite工程安装vue-router和axios。以下是两个关键配置文件一个后端一个前端。# application.yml server: port: 8080 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/animal?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: root type: com.alibaba.druid.pool.DruidDataSource servlet: multipart: max-file-size: 10MB max-request-size: 20MB mybatis: mapper-locations: classpath:mapper/*.xml configuration: map-underscore-to-camel-case: true前端vue.config.js里配代理// vue.config.js module.exports { devServer: { port: 5173, proxy: { /api: { target: http://localhost:8080, changeOrigin: true, pathRewrite: { ^/api: } } } } };前端请求路径写成“/api/adoption/apply”代理转发后后端实际接到的就是“/adoption/apply”这个路径规划在前端写代码时保持统一就好。4.2 后端SSM常用注解和核心代码这个项目里最常用的注解整理成了一张表写论文或者复习的时候对着看很方便。注解所属框架用途项目中出现位置RestControllerSpringMVC返回JSON的Controller所有Controller类RequestMappingSpringMVC映射URL路径各接口RequestBodySpringMVC接收JSON请求体新增修改类POST接口PathVariableSpringMVC从URL路径取参数详情查询接口ServiceSpring业务Bean注册Service实现类AutowiredSpring依赖注入Controller和ServiceMapperMyBatis标记Mapper接口所有MapperTransactionalSpring声明式事务审批相关的写操作ConfigurationSpring配置类标记WebMvcConfig等领养申请的后端Controller大致长这样RestController RequestMapping(/api/adoption) public class AdoptionController { Autowired private AdoptionService adoptionService; PostMapping(/apply) public Result apply(RequestBody AdoptionApply apply, HttpSession session) { Integer userId (Integer) session.getAttribute(userId); if (userId null) { return Result.error(请先登录); } apply.setUserId(userId); adoptionService.apply(apply); return Result.success(申请提交成功); } }Service里的审批方法加上事务核心逻辑是同步修改两张表Service public class AdoptionServiceImpl implements AdoptionService { Autowired private AdoptionApplyMapper applyMapper; Autowired private PetMapper petMapper; Override Transactional public void approve(Integer applyId) { AdoptionApply apply applyMapper.selectById(applyId); if (apply null) { throw new RuntimeException(申请记录不存在); } // 申请状态改为已通过 applyMapper.updateStatus(applyId, 1); // 动物状态改为已领养 petMapper.updateStatus(apply.getPetId(), 2); } }这段代码看起来简单但它把“状态机”、“事务”、“业务联动”三个点都串起来了是整篇论文里技术含量比较高的一块。做毕设比的是把简单的逻辑做对、做稳而不是代码写得花里胡哨。4.3 前端核心页面与Axios封装前端这一块我大致做了这些页面登录注册页、首页动物列表、动物详情页、提交领养申请页、我的申请页、助养计划页、后台管理页。后端接口统一以/api开头前端我把请求封装到了一个request.js里这样所有页面调用时都能自动带上Session或Token返回非200状态码时统一弹出提示代码会干净很多。// request.js import axios from axios; import { ElMessage } from element-plus; const request axios.create({ baseURL: /api, timeout: 10000 }); request.interceptors.response.use( response { const res response.data; if (res.code ! 200) { ElMessage.error(res.message || 请求失败); return Promise.reject(new Error(res.message)); } return res; }, error { ElMessage.error(网络异常请稍后重试); return Promise.reject(error); } ); export default request;首页动物列表用一个卡片组件循环渲染。每张卡片显示动物图片、名称、品种、是否已领养。这个卡片被复用到了好几个页面Vue组件化在这里省了不少事。4.4 Vue路由守卫与前端权限控制Vue Router配置里面我做了登录拦截。只要未登录访问需要权限的页面都会被重定向到登录页同时记录下来源路径登录成功后再跳回去这个用户体验细节很加分。router.beforeEach((to, from, next) { const token localStorage.getItem(token); if (to.meta.requireAuth !token) { next({ path: /login, query: { redirect: to.fullPath } }); } else if (to.path /admin localStorage.getItem(role) ! 1) { next(/403); } else { next(); } });注意这个判断只是前端显示层面的控制。真正的接口权限仍然靠后端拦截器把关如果谁来直接调用管理员接口后端会返回无权限的JSON这也是我在项目里反复强调的理念。4.5 打包部署与交付物整理后端用Maven打包目标产物是一个可运行的jar包。前端构建后生成dist目录把dist目录里的文件复制到后端src/main/resources/static下重新打包后端这样只需一个jar包就能启动整个系统。启动后访问localhost:8080/index.html就能看到首页。部署方式其实还可以用Nginx前后端分离部署前端口80后端口8080这种更接近企业真实环境。但毕设交付讲究简单可运行我最终选择了一个jar包方案。项目里我准备了一份README写清楚环境要求、启动步骤、初始账号密码评委老师拿到手能快速跑起来这方面口碑很重要。5. 常见问题与排查技巧实录5.1 跨域请求报错开发时后端端口和前端端口不同直接请求必然跨域。我试过三种方案后端加CrossOrigin、后端加CorsFilter、前端代理。最终我选了前端代理配置简单还不改后端代码。CorsFilter也能用但需要处理预检请求OPTIONS配置起来略麻烦。生产环境打包到同一个jar包后不存在跨域问题因为页面和接口是同一个源。排查跨域问题时最直接的现象是浏览器Network面板显示请求已发出但被拦截控制台报CORS或blocked by CORS policy。如果你看到这个优先检查代理配置是否生效再看后端是否还需要额外的允许跨域配置。5.2 文件上传失败与图片回显问题做动物信息管理时图片上传是个重灾区。我一开始没改Spring Boot上传大小限制传一张手机拍的照片就报错。解决办法就是在application.yml里设置max-file-size和max-request-size。图片上传到本地磁盘的upload目录数据库里存相对路径前端通过接口拼接完整URL。这里要提醒的是部署到服务器时upload目录需要改成服务器上的绝对路径否则图片会丢失。还有一个小坑Windows本地路径是反斜杠如果直接用字符串拼到前端URL里可能出问题。我在后端存路径时统一把反斜杠替换成正斜杠这个细节不写文档真的很容易忘记。5.3 时间格式和日期序列化问题后端LocalDateTime默认序列化成一段数组前端拿到没法直接使用。我在Spring Boot里配置了Jackson的时间格式化在application.yml中加入日期格式或者在实体字段上用JsonFormat注解。前端列表里展示时间用dayjs统一格式化比分页组件自带的格式化方法好用很多。5.4 MyBatis映射踩坑记录MyBatis的XML映射里最容易踩的坑是返回类型resultType字段不匹配。数据库字段是下划线命名Java属性是驼峰命名我在配置里开了map-underscore-to-camel-case大部分情况能自动映射。但如果是多表关联查询字段在多个表里出现就必须在SQL里给每列取别名否则数据对不上。还有一个经典问题明明查询有数据但接口返回null。一般是resultMap没配置关联对象或者嵌套查询的column写错了。排查这类问题先打开MyBatis的SQL日志看执行SQL是否带回了所有字段再看映射配置基本都能定位。5.5 前端功能开发中的几个易错点表格渲染不出来先看接口返回的字段名和前端绑定的字段名是否一致这是刚用Vue的人最常遇到的问题。axios返回的数据被包在Promise里要等异步结果拿到后再赋值不要在mounted外面直接操作响应式变量。Vue Router跳转后页面空白多半是路由路径和views目录下的文件名不一致vue文件小写和大写混用都可能出问题。再加一个实用的Element Plus的分页组件current-page和total默认是数字类型如果从后端返回的是字符串记得用Number()转一下否则分页高亮和跳页会偶尔出错。6. 论文与答辩要提前准备什么6.1 论文结构怎么组织我论文分成了这几章绪论、相关技术介绍、需求分析、系统设计、系统实现、系统测试、总结与展望。测试部分我用表格列功能测试用例写明预期结果和实际结果能占不少篇幅而且不空洞。相关技术介绍那里我详细写了SSM三个框架的分工和Vue的响应式原理面试也常常问到。关键部分是需求分析和系统设计。甲方需求写清楚后在系统设计里展示用例图、流程图、ER图、系统架构图再用文字描述核心表结构。这些图用ProcessOn或draw.io画别直接用代码截图充数画图在答辩时远比大段文字好讲。6.2 答辩演示脚本与常见提问答辩时要演示系统提前准备好脚本用管理员账号登录展示动物管理的增删改查、领养审核、回访记录查看再用普通用户账号演示提交领养申请、查看申请进度。两条线串起来展示业务闭环。演示前务必准备好图片素材别现场加载不出图真的会很尴尬。我在答辩PPT里专门放了几张“技术难点”的幻灯片事务同步更新两张表、路由守卫加拦截器的双层权限控制、跨域处理方案。这几点每个都能展开讲两分钟评委问起来有得聊。另外评委老师大概率会问“你的系统相比普通论坛或信息发布平台有什么不同”这时候就讲回访流程、助养周期管理、动物状态自动流转这些是业务上的亮点。做这个项目最大的体会是开始写代码之前不要怕在业务设计上花时间。我前后把功能模块和数据库改了三版第一版全靠想象设计表第二版加上了领养申请状态机第三版补上了回访和助养模块。每一版调整在后端实现上其实都不难反而是需求没想清楚的时候写代码最痛苦。最后分享一个小建议论文里的截图一定要在开发过程中顺手截别等到最后要去排版填报时再临时补环境、补数据去截屏。我一开始偷懒后来光补截图就花了一个晚上因为某些页面需要特定状态的数据才能展示再构造数据特别麻烦。如果后续时间充足这个项目还能往下扩展小程序端或者把助养模块接上真实支付回调这几个方向都可以写进论文里的“后续展望”也让整个项目显得更有延伸空间。

相关新闻

Nuxt vs Next.js:全栈框架选型实战与避坑指南

Nuxt vs Next.js:全栈框架选型实战与避坑指南

全栈框架的选型,几乎是每个前端团队从“纯做页面”走向“独立交付产品”时绕不开的一道坎。我这些年带过几个不同规模的项目,从内容站、后台系统到偏交互的 SaaS 工具,Nuxt 和 Next.js 这两个名字反复出现在技术评审会上。它们都打着“全栈框…

2026/10/9 11:59:06 阅读更多 →
投资理财系统源码:从部署到二次开发的完整实战指南

投资理财系统源码:从部署到二次开发的完整实战指南

简介:面向金融商贸领域开发与运维人员的投资理财系统完整源码包,适用于银行、基金、P2P等机构搭建理财平台。资源共有2000个文件,以php后端逻辑、html前端页面、js交互脚本及大量jpg/png图片资源为主,辅以sql数据库脚本、配置文件…

2026/10/9 11:58:05 阅读更多 →
字符串处理实战:编码、拼接、正则与空值边界避坑指南

字符串处理实战:编码、拼接、正则与空值边界避坑指南

1. 从一个空字符串说起:为什么这个标题值得单独写一篇看到“-字符串-”这个标题,很多人的第一反应是:这也太简单了吧?字符串谁不会用?但恰恰是这个看起来最基础的数据类型,在实际项目里翻车的概率高得离谱。…

2026/10/9 11:58:05 阅读更多 →

最新新闻

C# WinForms带搜索的ComboBox:从AutoComplete到自定义过滤

C# WinForms带搜索的ComboBox:从AutoComplete到自定义过滤

简介:面向 WPF 和 C# 桌面应用开发者的技术文档,解决标准 ComboBox 控件无法按关键字快速筛选列表项的常见痛点。文档从自定义一个继承自 ComboBox 的组合框控件入手,讲解如何新建依赖属性以接管数据源,如何在控件首次获得焦点时查…

2026/10/9 12:26:43 阅读更多 →
清华104页DeepSeek手册精读:提示词工程、本地部署与API调优实战指南

清华104页DeepSeek手册精读:提示词工程、本地部署与API调优实战指南

简介:这份由清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室余梦珑博士后团队编撰的《DeepSeek从入门到精通》PDF,面向希望系统掌握DeepSeek的开发者、内容创作者与AI应用爱好者,帮助读者从基础使用进阶到提示语设计的创新层面。资源包…

2026/10/9 12:26:43 阅读更多 →
UE4蓝图调用外部exe:用C++封装FPlatformProcess的进程启动指南

UE4蓝图调用外部exe:用C++封装FPlatformProcess的进程启动指南

简介:面向虚幻引擎4开发者的完整源码工程,用于在蓝图中通过 C 实现打开外部可执行程序。核心基于 FPlatformProcess 的 ExecuteAndWait 接口,覆盖进程启动、命令行参数传递、进程句柄获取等关键操作,适合游戏内启动辅助编辑器、执…

2026/10/9 12:26:43 阅读更多 →
网络安全系统上线安全检测与安全措施有效性验证报告模板:五段式结构与WAF绕过验证实战

网络安全系统上线安全检测与安全措施有效性验证报告模板:五段式结构与WAF绕过验证实战

简介:这份《系统上线安全检测和安全措施有效性验证报告模板》面向网络安全评估、系统运维、应用开发及安全合规管理人员,尤其适合参与系统上线前安全评审的技术人员使用。模板围绕网络安全技术、API接口安全、网站应用IPv6支持度三大方向,提供…

2026/10/9 12:26:43 阅读更多 →
NSL-KDD入侵检测实战:数据对齐、PCA降维与SVM/RF调参全解析

NSL-KDD入侵检测实战:数据对齐、PCA降维与SVM/RF调参全解析

简介:本资源是一份面向高校计算机安全、网络安全课程设计与期末大作业的完整网络入侵检测项目,专为初学者与进阶学习者设计,覆盖数据预处理、模型训练、PCA降维对比、跨数据集评估等核心环节。资源包共27个文件,含10个CSV格式的NS…

2026/10/9 12:26:43 阅读更多 →
去中心化人工智能架构:解耦计算、验证与协调三层

去中心化人工智能架构:解耦计算、验证与协调三层

1. 为什么“去中心化人工智能”不是又一个 buzzword,而是架构演进的必然结果“去中心化人工智能”这个词最近频繁出现在技术社区和白皮书里,但很多人第一反应是:这不就是把模型拆开、跑在几台机器上吗?跟微服务、分布式训练有啥本…

2026/10/9 12:25:42 阅读更多 →

日新闻

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 阅读更多 →