首页/新闻资讯/正文详情

SpringBoot+Vue高校科研信息管理系统毕设实战:从数据库设计到部署答辩

发布时间:2026/9/24 20:42:28 来源:云帆数科 栏目:资讯中心
SpringBoot+Vue高校科研信息管理系统毕设实战:从数据库设计到部署答辩
SpringBootVue这个组合在Java Web毕业设计里算是烂大街了但烂大街不等于没含金量。去年我带的一个学生做的高校科研信息管理系统最后被学院评了优秀毕设还拿去参加了校内的软件设计比赛。说实话这个题目看上去就是个标准的增删改查但真正动手做起来从数据库表设计到接口文档规范从权限控制到文件上传下载几乎把Java Web开发的核心点全串起来了。今天我就以这个项目为例把我当时带他做项目的完整思路、踩过的坑、以及答辩时可能会被问到的问题一次性全写出来。这个系统适合谁两类人一类是正在发愁毕设题目的计算机相关专业本科生另一类是刚入行想拿一个完整项目练手的初级Java开发。前者可以拿它做参考骨架后者可以从中学习企业级开发的标准分层思路。不管你是哪类这篇文章我都会尽量讲得通俗且具体。1. 项目整体架构与技术选型思路1.1 为什么选SpringBootVue这套组合先说结论这套组合是当前Java Web领域里性价比最高的方案没有之一。后端用SpringBoot不解释它内嵌Tomcat、自动配置、起步依赖这些特性能省掉大量XML配置。前端用Vue Element UI组件化开发表格、表单、弹窗这些后台管理系统常用组件直接拿来用开发效率是传统JSPJQuery方案的十倍不止。更重要的是这套技术栈完全贴合目前企业的实际招聘需求。你去翻任何一家公司的Java开发岗位要求SpringBoot和Vue基本都是标配。做毕业设计不只是完成一个系统更是给自己积累谈资。面试官问你会什么你说“我毕设用了SpringBootVue做了个管理系统”他大概率会继续追问细节而你只要确实亲手做过回答起来完全不虚。当然也有学生问过我为什么不用Spring Cloud微服务为什么不用前后端不分离原因很简单——毕设的核心是完整性和逻辑自洽不是技术堆砌。高校科研信息管理系统这种业务场景单机部署、前后端分离、单个后端服务完全够用。非要用Spring Cloud反而容易因为服务拆分、分布式事务这些问题把自己绊倒最后连跑都跑不起来。1.2 系统核心功能模块拆解这个系统的业务场景是高校内部的科研管理核心用户有三类普通教师科研人员、院系科研秘书审核人、科研处管理员超级管理员。围绕这三类角色我把功能拆成六大模块。第一个是登录认证模块。用的是JWTJSON Web Token做无状态认证用户登录后后端签发Token前端存在本地存储里每次请求带上Token后端通过拦截器校验。这里有个很重要的设计决策——为什么不用传统的Session因为前后端分离后后端接口在独立端口前端页面在另一个端口的Nginx上跨域会产生Session共享问题。JWT天然无状态不依赖Session跨域也不怕。第二个是科研项目管理模块。这是系统的核心业务覆盖项目申报、立项、中期检查、结题验收四个阶段。每个阶段对应一张状态流转记录项目实体只存当前状态历史流转记录单独存一张表。这样设计的好处是你想查一个项目从申报到现在经历过哪些审核节点直接查流转记录表就行不用翻日志。第三个是科研成果管理模块。教师录入自己发表的论文、申请的专利、获得的奖项管理员可以按学院、按年度统计成果数量。这个模块看上去简单但表格设计上有讲究——成果类型不同对应的元数据字段也不同。论文有期刊名、影响因子专利有专利号、授权日期。我当时的做法是建一张成果主表存公共字段再建论文、专利、软著三张扩展表用外键关联。第四个是科研经费管理模块。经费分预算和实际支出两部分教师录入支出明细系统按项目维度汇总超支时给出警示。这个模块对数据精度要求高金额字段在MySQL里用的是DECIMAL(10,2)Java侧用BigDecimal映射绝不用Double或Float——这里涉及浮点数精度问题后面我会细说。第五个是通知公告模块。管理员发布通知教师登录后能看到未读消息数量。技术实现上就是一张公告表加一张已读记录表用联合唯一索引约束同一用户对同一公告只能有一条已读记录。第六个是数据统计模块。用ECharts做柱状图、饼图展示各学院项目数量、经费占比、成果分布。后端提供聚合查询接口前端拿到数据后做图表渲染。2. 数据库设计与SQL脚本落地要点2.1 数据库表结构设计与ER关系数据库设计是整个系统的地基地基不稳后面写代码全是坑。我当时画了ER图一共设计了十张核心表这里我按业务域分组说明。用户域三张表用户表sys_user、角色表sys_role、用户角色关联表sys_user_role。用户和角色是多对多关系所以中间需要一张关联表。角色表里预置了四种角色ROLE_ADMIN科研处管理员、ROLE_SECRETARY院系科研秘书、ROLE_TEACHER教师、ROLE_STUDENT学生部分高校允许学生参与科研项目。项目域三张表科研项目表research_project、项目成员表project_member、审核记录表project_audit_record。项目表存项目的基本信息、起止时间、预算金额、当前状态成员表存项目参与人审核记录表存每次状态变更的操作人、操作时间、审核意见。为什么要单独拆审核记录表因为科研项目要保留完整的审批链路这是业务硬性要求不能只存一个最终状态。成果域两张表成果主表research_achievement、成果扩展表achievement_detail。主表存成果名称、类型、负责人、所属项目、获得时间扩展表用JSON字段存储不同类型成果的个性化属性。MySQL从5.7开始支持JSON类型对这种“一张主表挂多类型扩展信息”的场景非常合适比硬拆多张外表更灵活。经费域一张表project_fund存项目预算、已用金额、每笔支出的明细记录。通知域一张表notice存公告内容、发布时间、发布人配合已读记录表使用。这里有一个我反复跟学生强调的原则所有表必须有主键、创建时间、更新时间这三个字段。主键默认用雪花算法生成的Long型ID不用自增ID。原因是自增ID在主从复制、分库分表场景下会有冲突风险而且容易被爬虫遍历抓取数据。虽然毕设项目用自增ID也能跑但养成用雪花ID的习惯对后续职场发展有帮助。2.2 核心表SQL脚本设计与字段规范我挑两张最有代表性的表来写具体SQL你们拿回去可以直接抄。第一张是用户表。核心逻辑是用户名唯一、密码必须加密存储、状态字段做软删除。密码加密用的是BCrypt算法Spring Security内置支持同一个密码每次加密后的密文都不同但校验结果一致。这里你们可以对比一下MD5MD5加盐虽然也能防彩虹表但BCrypt的慢哈希特性让暴力破解的成本更高是当前业界主流方案。CREATE TABLE sys_user ( id BIGINT NOT NULL COMMENT 主键ID雪花算法生成, username VARCHAR(50) NOT NULL COMMENT 登录用户名唯一, password VARCHAR(100) NOT NULL COMMENT BCrypt加密后的密码, real_name VARCHAR(50) DEFAULT NULL COMMENT 真实姓名, email VARCHAR(100) DEFAULT NULL COMMENT 邮箱, phone VARCHAR(20) DEFAULT NULL COMMENT 手机号, department_id BIGINT DEFAULT NULL COMMENT 所属院系ID, status TINYINT NOT NULL DEFAULT 1 COMMENT 状态1启用0禁用软删除, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (id), UNIQUE KEY uk_username (username) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT用户表;注意几个细节字符集必须用utf8mb4而不是utf8因为utf8在MySQL里最多支持3字节存不了emoji和一些生僻字更新时间用ON UPDATE CURRENT_TIMESTAMP可以自动刷新不用在代码里手动赋值软删除字段用status而不是is_delete因为业务里状态可能不止两种后续扩展更灵活。第二张是科研项目表。这张表最核心的是状态字段和预算字段。状态我用varchar存值域枚举有PENDING待审核、REJECTED已驳回、APPROVED已立项、IN_PROGRESS进行中、COMPLETED已结题。有人喜欢用数字0、1、2但我觉得可读性太差查数据时还得对着文档看数字是啥意思直接存英文状态码更直观代码里用枚举类做映射就行。CREATE TABLE research_project ( id BIGINT NOT NULL COMMENT 主键ID, project_code VARCHAR(50) NOT NULL COMMENT 项目编号, project_name VARCHAR(200) NOT NULL COMMENT 项目名称, project_type VARCHAR(20) DEFAULT NULL COMMENT 项目类型国家级/省部级/校级, leader_id BIGINT NOT NULL COMMENT 项目负责人用户ID, department_id BIGINT DEFAULT NULL COMMENT 所在院系ID, budget_amount DECIMAL(10,2) DEFAULT 0.00 COMMENT 预算总金额, used_amount DECIMAL(10,2) DEFAULT 0.00 COMMENT 已使用金额, status VARCHAR(20) NOT NULL DEFAULT PENDING COMMENT 项目状态, start_date DATE DEFAULT NULL COMMENT 开始日期, end_date DATE DEFAULT NULL COMMENT 结束日期, description TEXT COMMENT 项目简介, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY uk_project_code (project_code), KEY idx_leader_id (leader_id), KEY idx_status (status) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT科研项目表;项目编号是唯一索引因为业务上这个编号是学校科研处统一制定的不会重复。leader_id和status都建了普通索引因为列表页最常用的查询条件就是按负责人或按状态筛选。这里强调一下索引别乱建只给查询频繁的字段建因为索引会降低写入性能、多占存储空间。毕设项目数据量小建索引的好处大于坏处但你要能说出这个取舍逻辑答辩时是加分项。3. 后端核心实现与接口文档撰写3.1 后端分层架构与核心代码组织后端代码包结构我是按这个组织的controller、service、mapper、entity、dto、vo、config、common。很多学生喜欢把实体类、请求参数、响应结果全混在一个包里项目一大了就乱。我要求他必须区分清楚entity是数据库表映射的对象字段和表完全一致dto是接收前端请求参数的传输对象vo是返回给前端的数据对象可以按需裁剪字段。举个例子。分页查询项目列表时前端传过来的是pageNum、pageSize、projectName、status这几个参数所以controller接收的RequestDTO里就定义这四个字段。返回的数据里除了项目基本信息还需要返回负责人姓名、所在院系名称——这些字段数据库里没有是关联查出来或者单独处理的所以vo里就额外加这么几个字段。entity里则干干净净不掺任何业务逻辑相关的字段。这个分层的核心价值在于解耦。entity不暴露给前端前端就不会知道表结构vo不直接关联数据库改表结构时不至于把接口响应也带崩。我在项目里用MyBatis-Plus做ORM它的LambdaQueryWrapper写起来非常香复杂查询条件用链式调用就能拼出来不用手写一大串XML。但说实话MyBatis-Plus的代码生成器我建议学生自己手动建一次表结构再生成别直接用自动生成的就完事要能看懂生成的代码在干什么。再说说统一返回结果和全局异常处理。这两个是任何正经后端项目必须具备的但很多毕设项目居然没做。统一返回结果就是这个结构{code: 200, message: success, data: {...}}所有接口都返回这个格式前端拿到后先判断code再取data。全局异常处理用RestControllerAdvice注解把业务异常、参数校验异常、系统异常分别处理保证接口不会把堆栈信息直接甩给前端。我见过一个项目没做全局异常处理数据库查询报错时接口直接返回500加一串英文异常信息前端页面白屏这种问题在答辩时会被老师一眼看穿。3.2 接口文档要怎么写才能让人看得懂接口文档是很多人容易忽略的部分项目标题里专门提到了接口文档说明这是这个项目的亮点。我当时让学生用Apifox管理接口文档原因很简单——免费、支持导入Postman数据、可以直接生成在线文档链接老师点开就能看。一份合格的接口文档每个接口必须包含以下信息接口地址、请求方式、请求参数说明参数名、类型、是否必填、说明、响应示例、错误码说明。我随便举一个登录接口的示例POST /api/auth/login 请求参数JSON: { username: admin, password: 123456 } 参数说明: username - 用户名必填字符串 password - 密码必填字符串 响应示例成功: { code: 200, message: success, data: { token: eyJhbGciOiJIUzI1NiJ9.xxx.xxx, role: ROLE_ADMIN, realName: 张三 } } 响应示例失败: { code: 401, message: 用户名或密码错误, data: null }写文档有个常见误区只贴参数名不写说明。比如参数叫status你不说明它有哪几个枚举值前端同学拿到文档根本不知道怎么传。我要求学生的文档里每个枚举字段必须列出全部取值范围及含义。另外响应示例一定要写而且成功和失败的都要写。前端调试后端接口时最怕的就是不知道后端返回长啥样只能先去控制台打日志。我见过傻白甜的学生代码跑通了就完了接口文档一个字不写到答辩时老师问“你这个系统有多少个接口”他答不上来。后来我让他打开Apifox逐个接口统计一共写了46个接口他心里才有底。还有一个实操技巧给接口按模块打标签。比如“用户管理”、“项目管理”、“成果管理”每个标签下挂对应的接口列表。这样整个文档结构清晰答辩演示时老师要看到底有哪些功能你按标签一个个点开观感非常专业。4. 前端Vue实现与前后端联调实战4.1 Vue项目搭建与核心页面实现前端我用Vue 2 Element UI Vuex Vue Router这套组合。为什么不直接用Vue 3因为Element UI对Vue 2支持最成熟稳定Element Plus虽然在推Vue 3版本但当时版本迭代太快部分组件还有兼容性坑。毕设项目稳字当头。安装环境的部分我提一嘴Node.js版本建议用16.x LTSnpm源如果是国内网络建议配一下淘宝镜像否则npm install可能等到天荒地老。创建项目用vue create命令选Manually select features勾上Router和Vuex一路回车就完事。整个前端页面我分了两块登录页、主布局。登录页没什么好说的一个表单加一个登录按钮。主布局是重点用Element UI的Container布局容器左侧是菜单栏右侧是内容区。菜单栏根据当前用户的角色动态生成——管理员看到的是所有菜单教师只能看到项目管理、成果管理、经费管理这些本人相关的菜单。这个动态菜单的实现方式是登录成功后后端返回当前用户的权限码集合前端用v-if逐项判断菜单项是否显示。在项目申报页面的实现上用了一个表单加一个动态表格。动态表格用于填项目成员可以点“添加成员”按钮往表格里插入一行填写成员姓名和分工。这个交互逻辑用Vue的响应式数组很容易实现每次添加就是往数组里push一个对象删除就是splice。这里有一个初学者经常犯的错误直接通过数组下标修改对象属性Vue 2的响应式系统监听不到界面不刷新。解决办法是用this.$set(this.memberList, index, newItem)强制触发更新。虽然Vue 3用Proxy解决了这个问题但这个坑在Vue 2时代的项目里非常经典写出来希望能帮到还在用Vue 2的人。4.2 前后端联调踩坑记录前后端分离的最大痛点就是联调。前端跑在8080端口后端跑在8081端口前端的axios请求要跨域打到后端不配置就会报CORS错误。常见的解决方案是用Nginx做反向代理把/api前缀的请求转发到后端8081端口。如果本地开发不想用Nginx也可以在后端加一个CORS配置类允许跨域请求。Configuration public class CorsConfig { Bean public CorsFilter corsFilter() { CorsConfiguration config new CorsConfiguration(); config.addAllowedOrigin(*); config.addAllowedMethod(*); config.addAllowedHeader(*); UrlBasedCorsConfigurationSource source new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration(/**, config); return new CorsFilter(source); } }这个配置我提醒一下生产环境千万不能这么写addAllowedOrigin(*)意味着任何网站都可以跨域调用你的接口典型的安全漏洞。但在毕设阶段本地联调用这个配置最省事不用开Nginx。如果答辩时老师问你生产环境怎么处理你要回答“用Nginx做反向代理让前后端同域部署”这样就完美了。还有一个经常踩的坑是axios请求带Token。前端在登录成功后把Token存到localStorage然后在axios请求拦截器里从localStorage取Token塞到请求头里。后端拦截器统一从请求头里的Authorization字段取出Token并校验。// axios请求拦截器 service.interceptors.request.use( config { const token localStorage.getItem(token); if (token) { config.headers[Authorization] token; } return config; }, error { return Promise.reject(error); } );Token过期也是联调时经常碰见的问题。JWT默认有效期如果设置太短比如2小时你早上配好的环境下午就过期了接口全部401排查半天还以为是什么大问题。我让学生把Token有效期设置成24小时答辩当天完全够用。如果想让体验更好一点可以在后端增加一个刷新Token的接口但这个是加分项不求多。5. 常见问题排查与毕业设计答辩准备5.1 部署运行中的高频问题速查我把学生做这个项目过程中遇到的高频问题整理成了一个表格你们可以直接对照排查。问题现象可能原因解决方案前端页面访问不了Vue项目没启动或Nginx配置错误检查npm run dev是否启动访问localhost:8080看是否有页面后端接口返回404controller的RequestMapping路径写错或前端请求路径不对打开Apifox直接测后端接口排除前端问题对比接口文档路径数据库连接失败MySQL未启动、密码错误、驱动版本不匹配确认MySQL服务已启动检查application.yml的url、username、password检查MySQL驱动依赖版本导入SQL报语法错误本机MySQL版本过低用了高版本语法确认MySQL版本≥5.7因为JSON类型和utf8mb4字符集需要高版本支持文件上传后访问不到上传路径配置不安全在application.yml里配置自定义上传路径并用WebMvcConfigurer映射静态资源访问登录成功后刷新页面白屏前端路由守卫未判断Token或Vuex状态未持久化在路由守卫beforeEach中检查localStorage里的TokenVuex状态用vuex-persistedstate插件持久化表格数据量大了卡顿前端分页没做或后端查询没优化前端必须用分页组件后端用MyBatis-Plus的Page对象做物理分页这里面最值得展开说的是上传文件路径的问题。科研管理系统里教师上传项目申报书、结题报告是刚需。如果你把文件直接保存到项目的src/main/resources/static目录下打包成jar部署时因为resources目录会被打进jar包里上传的文件下次重启就没了。正确的做法是在application.yml里配置绝对路径比如file.upload-path: D:/upload/然后用配置类把这个路径映射成静态资源URL。Configuration public class WebMvcConfig implements WebMvcConfigurer { Value(${file.upload-path}) private String uploadPath; Override public void addResourceHandlers(ResourceHandlerRegistry registry) { // 访问的URL前缀是 /files/映射到本地的 D:/upload/ registry.addResourceHandler(/files/**) .addResourceLocations(file: uploadPath); } }这个配置的意义在于文件上传后存在固定路径不会因为应用重新部署而丢失前端通过http://localhost:8081/files/xxx.pdf就能直接预览。5.2 毕业设计答辩常见提问与应对思路答辩环节老师最爱问的问题我总结下来就这几类提前准备就行。第一个必问题为什么选用SpringBoot和Vue前面讲过原因重点强调快速开发、生态成熟、企业主流需求这三个点再加一句“本课题是管理信息系统数据量大但业务逻辑不复杂单体架构够用”就完美了。第二个经典题JWT的Token过期了用户正在操作怎么办这个问题考察的是对无状态认证机制的理解。可以这样回答前端在axios响应拦截器里判断401状态码弹窗提示用户重新登录然后跳转到登录页。更高级一点的方案是使用双Token机制——短期Token用于正常请求有效期2小时长期RefreshToken用于无感刷新用短期Token快过期时前端拿RefreshToken去换取新的短期Token。如果答辩时间充裕你可以在项目里实现这个双Token方案绝对是个亮点。第三个高频题你的系统是怎么保证密码安全的答案是BCrypt加密存储配合Spring Security的认证机制。要能说出BCrypt和MD5的区别——MD5是快速摘要容易被暴力破解BCrypt是慢哈希自动加盐加密强度可调。这里的专业术语“慢哈希”说出来老师就知道你是真的懂。第四个题有点深数据库表为什么用逻辑删除不用物理删除答案是业务数据具有法律效力和审计需求比如经费记录不能删只能标记作废。还有逻辑删除配合唯一索引时要注意——如果一张表里允许重名但逻辑删除了你再插入同名的记录时唯一索引会报冲突。所以设计时会用username is_delete做联合唯一索引或者删除时给username加一个时间戳后缀。第五个题是代码级的问题SpringBoot的启动流程是什么核心我就记住了两点SpringBootApplication是Configuration EnableAutoConfiguration ComponentScan的合体启动时Spring Boot会加载自动配置类根据classpath下的依赖和配置文件里的条件注解决定哪些配置生效。能说清楚这两点这个问题的分数就到手了。5.3 项目打包部署与演示环境搭建最后说说打包部署这块。很多学生的毕设演示是在IDEA里点运行的这其实不够完整。我建议你们一定要做一次完整的打包部署用生产模式跑一遍。后端的步骤很固定在IDEA的Maven面板里执行mvn clean package -DskipTests然后在target目录下会生成一个jar包。你也可以用命令行mvn clean install。打包完成后在服务器或者本机用java -jar xxx.jar启动默认端口8081访问接口文档看是否正常。这里有个规范打包时用Profile区分环境。application.yml里配置公共配置application-dev.yml是开发环境application-prod.yml是生产环境。生产环境的数据库密码、服务器IP这些都是写死的用java -jar xxx.jar --spring.profiles.activeprod指定启动时读取哪个配置文件。这个知识点也是答辩时的高频考点老师问“你在本地跑和生产环境跑有什么区别”答案就是这套Profile机制。前端的部署更简单先执行npm run build等几分钟生成dist目录然后把dist目录里的所有文件复制到Nginx的html目录下最后配置Nginx把/api开头的请求转发到后端服务。server { listen 80; server_name localhost; # 前端页面 location / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; } # 后端接口反向代理 location /api/ { proxy_pass http://localhost:8081/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }有几句话我特别想强调。这个try_files $uri $uri/ /index.html;是Vue路由history模式的关键配置没有它的话你刷新页面就404了。原理是Vue Router的history模式通过HTML5 History API修改浏览器地址栏URL但服务端并不知道这个URL你得把所有不存在的请求都重定向到index.html让前端路由接管。我个人的建议是如果条件允许把项目部署到云服务器上用服务器IP访问演示整个演示过程会显得非常专业。即使是部署在本机也尽量用打包后的Nginx服务演示别直接IDEA浏览器两个窗口就完了。因为这个细节直接反映你的工程化能力而工程化能力恰恰是评定一个毕业生是不是真的具备企业开发素质的重要分界线。这个系统做完我的感受是它像一块敲门砖。它会逼着你把前后端协作、数据库设计、安全认证、接口规范这些核心知识点都过一遍。做成之后对这个方向的开发工作心里就有底了。

相关推荐

AI短视频自动制作与多平台分发:从文案生成到FFmpeg合成全流程实战
AI短视频自动制作与多平台分发:从文案生成到FFmpeg合成全流程实战

做了大半年内容矩阵,最让我崩溃的不是写不出东西,而是同样的流程要反复做几十遍。从找选题、写口播稿,到录音、剪素材、加字幕,再到一条条复制粘贴发去各个平台,一条一分钟的短视频,人工做至少要两三个小时… · 2026/9/24 20:42:09

AI短视频自动制作与多平台分发全流程实战指南
AI短视频自动制作与多平台分发全流程实战指南

一天要更新五个平台,每个平台还要按不同比例、时长、标题规格重新剪一遍,光想到这里我就头大。这是我下定决心做AI短视频自动制作与多平台分发智能解决方案的直接起因。作为一个同时运营多个短视频账号的从业者,我太清楚这条流水线上的重复劳… · 2026/9/24 20:42:09

AI产品合规实操指南:边界判断、内容安全与自检清单
AI产品合规实操指南:边界判断、内容安全与自检清单

AI新规实施这段时间,我微信上被问得最多的一句话就是:到底什么能做,什么不能做?问的人有做AI应用的创业者,有大厂的内容安全负责人,也有刚给公司搭完本地部署AI环境的技术同学。大家担心的其实都是同一件事… · 2026/9/24 20:42:09

Atlas 300V 24G部署YOLO目标检测实战与踩坑记录
Atlas 300V 24G部署YOLO目标检测实战与踩坑记录

最近手头项目正好用上 Atlas 300V 24G 这张卡,前前后后折腾了一轮 YOLO 部署。从驱动安装到模型转换,再到最后的推理调优,踩了不少坑,也总结出一些规律。趁热把整个过程记录下来,给准备在 Atlas 系列加速卡上做目标检测… · 2026/9/25 7:19:20

树形论坛系统:基于PHPWind的层级回复架构与性能优化实践
树形论坛系统:基于PHPWind的层级回复架构与性能优化实践

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

FAST Color PixelBlob 接口完全指南:像素数据的统一抽象与量化应用
FAST Color PixelBlob 接口完全指南:像素数据的统一抽象与量化应用

前端UI组件 【免费下载链接】fast The adaptive interface system for modern web experiences. 项目地址: https://gitcode.com/gh_mirrors/fa/fast 点击查看 免费下载 PixelBlob 是 microsoft/fast-colors 颜色工具库中定义的一个核心接口,用于统一抽… · 2026/9/25 7:19:20

PaddleSpeech FastSpeech2 VCTK 多说话人语音合成实战:从数据准备到模型部署全流程解析
PaddleSpeech FastSpeech2 VCTK 多说话人语音合成实战:从数据准备到模型部署全流程解析

人工智能语音音频 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword… · 2026/9/25 7:19:20

实战解读 CodeQL Actions 查询:UnnecessaryUseOfAdvancedConfig 与工作流默认设置简化
实战解读 CodeQL Actions 查询:UnnecessaryUseOfAdvancedConfig 与工作流默认设置简化

静态分析SAST应用安全漏洞扫描代码质量 【免费下载链接】codeql CodeQL: the libraries and queries that power security researchers around the world, as well as code scanning in GitHub Advanced Security 项目地址: https://gitcode.com/gh_mirrors/co/code… · 2026/9/25 7:19:20

2024年网络安全人才报告解读:薪资四档、人才缺口与AI冲击
2024年网络安全人才报告解读:薪资四档、人才缺口与AI冲击

简介:《2024年网络安全产业人才发展报告》是一份全面解析网络安全人才市场的行业调研资料,适合政府决策者、企业管理者、教育机构、网络安全从业者及高校学生参考,帮助各方把握人才供需现状、薪酬水平与AI技术带来的变革。压缩包内为PDF格式&… · 2026/9/25 7:19:08

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

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

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

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

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码