新闻详情

新闻详情

首页 / 资讯中心 / 详情

Spring Boot疫情社区防控系统部署与二次开发实操指南

发布时间:2026/10/2 9:02:06来源:尧图网络
Spring Boot疫情社区防控系统部署与二次开发实操指南
直接上手聊聊这个Spring Boot疫情社区防控系统。这类项目在课程设计、毕业设计里非常常见但市面上大多数版本都只是把CRUD堆在一起数据库几张表后台几个页面能跑起来就算完事。真正拿到源码之后你会发现部署、调通、改业务逻辑才是大头尤其是社区防控这种包含人员登记、健康打卡、隔离管理、出入记录、物资发放、数据统计等多模块的系统表结构设计不好后面每加一个功能就要改一遍数据库。这篇就把我实际部署和二次开发这个uljw7版本的过程完整捋一遍从技术选型、表设计、核心代码思路到本地跑起来的每一步以及我踩过的坑一次性说清楚给正在做类似系统或者打算拿这套东西做参考的同学一份能直接抄作业的实操指南。1. 项目整体设计与思路拆解1.1 为什么要用Spring Boot做社区防控系统社区防控的核心痛点是信息分散。一个社区通常有几个小区每个小区有几十栋楼每栋楼有上百户居民疫情期间要管理的人员流动信息、健康状态、隔离情况、核酸检测记录、物资需求靠Excel和微信群根本撑不住。这个系统的价值在于把人—楼栋—小区—社区四级结构统一管理起来并且通过角色权限区分社区管理员、网格员、居民让数据录入和查询都有明确边界。用Spring Boot选型的原因其实很朴素第一Java生态成熟网上参考资料最多遇到问题几乎都能搜到答案第二Spring Boot的自动配置和Starter机制能把项目启动成本降到最低一个SpringApplication.run()就能拉起整个Web应用非常适合课程设计和毕业设计这种需要短期落地的场景第三内置的Spring MVC和MyBatis Plus组合做后台管理系统太顺手了不需要花时间在复杂的前后端分离架构上一套Thymeleaf模板引擎就能把页面和接口揉在一起。这个项目的技术栈不是越新越好而是要稳。JDK 1.8 Spring Boot 2.x MyBatis Plus MySQL 5.7是久经考验的组合网上大量现成的代码片段和坑位记录都围绕这套版本换成Spring Boot 3.x反而会碰到javax到jakarta命名空间迁移、MyBatis Plus适配等一堆新问题。如果你不是非要用新特性就老老实实按这个组合来。1.2 系统需求拆解与模块划分社区防控系统的核心需求可以拆成五个维度这也是数据库设计的出发点人员信息管理居民基础信息姓名、身份证、手机号、住址、家庭成员关系、特殊人群标记老人、孕妇、慢性病患者。健康状态管理每日体温上报、健康码状态绿码、黄码、红码在项目里一般用状态字段模拟、是否出现咳嗽发热等症状。隔离管理隔离人员登记、隔离开始结束时间、隔离地点居家/集中、每日健康监测记录、隔离解除审批。出入管理小区出入口的通行记录、访客登记、车辆进出、异常情况标记。物资与统计防疫物资口罩、消毒液入库出库记录、居民物资需求登记、各类数据报表。你可以看到这些需求其实都是典型的增删改查但难点在于它们之间有关联关系。比如一个居民被标记为隔离状态后他的每日健康打卡是否还要继续解除隔离时需要审核流程吗出入记录里如何快速筛选出某个隔离人员的违规外出记录这些都需要在设计表结构时提前考虑。再就是角色权限。系统必须至少有三种角色超级管理员社区总控、网格员负责具体楼栋/片区的信息采集和审核、居民只能查看自己的信息和填报健康状态。权限控制如果不做任何一个人都能打开别人的健康记录那就没法用了。Spring Boot里用拦截器加角色判断就能实现不用引入Spring Security这种重量级框架当然如果你想写论文显得专业引入Spring Security加分但实际复杂度会翻倍。1.3 这个版本的特点与设计取舍uljw7这个版本在结构上是典型的前后端不分离的单体应用。所有页面服务端渲染前端用的是Thymeleaf加Bootstrap数据交互用Ajax异步请求。它的好处是不需要额外部署前端工程不用配置跨域打包成一个Jar包就能跑非常适合演示和答辩。坏处是页面和后端耦合紧密如果要改成VueSpring Boot的前后端分离架构工作量基本等于重写前端。表设计上我拿到源码后第一件事就是看数据库脚本整个库一共十几张表主表是resident、health_info、isolation_info、access_record、material_stock、material_record、user、role。这里有个很聪明的设计把楼栋和小区做成了community表里的自关联而不是单独建楼栋表。虽然灵活性和扩展性差了些但对于课程设计来说避免了一次JOIN逻辑更直观。项目还内置了一个code_generator模块这是很多毕设项目标准配置。用MyBatis Plus的代码生成器配置好数据库连接后一键生成entity、mapper、service、controller。这套东西在二次开发时非常有用比如你想加一个疫苗接种记录表直接把表建好跑一下生成器基础代码就出来了再自己改改业务逻辑就行。2. 核心技术细节解析与实操要点2.1 数据库表结构设计与关联关系我打开sql文件梳理了一下核心表这里分享一下关键表的设计思路和字段含义二次开发时你就知道该改哪里。居民表resident除了基础信息之外有community_id外键指向社区表的主键status字段记录当前居住状态0-正常居住、1-隔离中、2-已迁出。这里要注意居民和社区是多对一关系但社区表又是树形结构上级社区id指向自身主键所以在查询某个小区的居民时要先定位到具体小区节点。健康打卡表health_info每条记录对应某个人某一天的健康情况字段包括temperature、health_code_state这里是用一个int存绿黄红码0/1/2对应展示时再翻译、is_cough、is_fever、remark。设计上采用了复合唯一索引(resident_id, report_date)就是说一个人每天只能有一条打卡记录重复提交直接报错或更新这一条在接口层也要做校验否则前端快速双击会同时插入两条数据。隔离管理表isolation_info记录隔离人员、隔离类型、开始日期、结束日期、状态隔离中、已解除。它和resident是一对一关系实际建表时没有直接在居民表里加is_isolation字段而是通过是否存在未解除的隔离记录来判断这个人是否处于隔离状态。这样设计的好处是保留了完整的隔离历史方便追溯。出入记录表access_record把进出小区的人员、时间、体温、事由、同行人数统一存起来通过type字段区分居民还是访客。这个表数据量增长会很快社区一天几百条出入记录很正常所以查询列表默认按时间倒序并分页千万别用SELECT *一把梭。2.2 后端分层架构与核心代码实现整个后端包名是com.example.community典型的Controller-Service-Mapper三层。Controller层只有一个很薄的壳负责接收参数、调用Service、返回给页面。因为它用了Thymeleaf所以返回视图名和返回JSON数据ResponseBody混合使用。页面跳转方法返回StringAjax数据接口返回Result对象。这里有第一个考试常考的点Ajax请求的POST如果不加RequestBody直接通过表单参数接收那前端要用data对象传值不要用JSON.stringify。Service层我建议细看一下ResidentServiceImpl里面体现了大部分业务逻辑。比如新增居民时会自动创建对应的登录账号初始密码是身份证后6位。这个逻辑看起来简单但是容易出错的地方在于事务控制。新增居民和创建账号是两步操作必须加Transactional否则居民信息插入成功账号创建失败数据就不一致了。源码里是加了事务的答辩时被老师问起来你要能说出因为跨表写入需要事务保证原子性这就是加分点。Mapper层直接用MyBatis Plus的BaseMapper不写XML文件的简单查询全都通过LambdaQueryWrapper构造条件复杂的比如多表关联查询才写自定义SQL。项目里统计模块用了Select注解直接写在接口上比如统计每日体温异常人数、隔离人数、物资库存预警这类SQL不涉及动态条件写注解最清爽。2.3 前端页面与交互逻辑页面层的实现不算复杂但有几个交互细节值得关注。登录页面做了验证码一般的课程设计里验证码就是个摆设但这个项目用了kaptcha后端校验逻辑是存在Session里的所以多人同时用不要担心串号同一浏览器刷新会变但也容易碰到验证码过期需要点击图片刷新。首页仪表盘做了几块ECharts图表展示各小区隔离人数、每日打卡率、体温异常趋势。数据来源是后端预先聚合好的接口比如/statistics/district、/statistics/trend返回的JSON格式直接匹配ECharts的data字段。如果你要改图表重点关注前端js/index.js里$.ajax的请求地址和option.series.data的赋值。健康打卡页是居民端使用频率最高的页面表单里有温度输入、症状勾选、健康状况备注提交后走/health/add接口。页面有JS校验大于37.3度的温度会弹窗提示并标红但后端也做了校验温度不在35-42范围内直接返回错误信息防止绕过前端直接调接口。隔离人员管理页支持手动登记和批量导入导入用的Excel模板在docs/template.xlsx调用POI解析。这里的核心点在于导入数据行的校验身份证号是否合法、日期格式是否正确、必填项是否为空每个错误都要精确到行号方便操作员修改后重新导入。源码中校验的逻辑是逐行逐列循环的虽然性能一般但正确性和用户体验优先。2.4 打包部署与配置文件这个项目的部署方式有两种开发环境下直接在IDEA里点启动部署到服务器时打Jar包运行。application.yml里有几个关键配置项server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/community?useUnicodetruecharacterEncodingutf8useSSLfalseserverTimezoneAsia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver redis: # 本项目没有使用redis如有需要可自行配置 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global-config: db-config: logic-delete-field: deleted logic-delete-value: 1 logic-not-delete-value: 0这里两个误区大家务必注意。数据库连接串里的serverTimezoneAsia/Shanghai必须加否则MySQL 8.x会报时区错误但MySQL 5.7不加也能跑。useSSLfalse是为了避免安全告警仅限本地开发生产环境不建议关。MyBatis Plus的逻辑删除配置在5.x版本里字段必须是deleted且全局配置生效但如果你的表里没这个字段启动时也不会报错只有查询时会莫名其妙少数据这个坑后面细说。多环境配置方面项目没有拆application-dev.yml和application-prod.yml只有一个配置文件改参数全靠手动注释。我建议你从网上拷贝一份多环境配置的代码片段用spring.profiles.activedev来切换虽然工作量不大但对以后部署有好处。3. 实操过程与核心环节实现3.1 环境准备与初始化我这套环境是Windows 11 IDEA 2023.2 JDK 1.8 Maven 3.8.6 MySQL 5.7。如果你的电脑已经装了更高级别的JDK比如JDK 17项目很可能启动不了。原因在于Spring Boot 2.3.12.RELEASE对高版本JDK的字节码处理存在兼容问题最常见的报错是IllegalArgumentException: Unsupported class file major version。遇到这种情况不用换JDK在Maven的pom.xml里把编译目标强制定在1.8更稳妥的办法是装一个1.8版本的JDKIDEA里切换Project SDK。数据库初始化步骤如下mysql -u root -p source /你的路径/sql/community.sql;这里务必注意community.sql的文件编码。如果脚本里有中文注释用source导入时可能会乱码解决方式是导入之前先执行set names utf8mb4;或者用Navicat直接运行SQL文件编码选UTF-8。导入完成后核对一下表是否完整。可以执行show tables;正常的表清单里有user、role、user_role、community、resident、health_info、isolation_info、access_record、material_stock、material_record、notice、sys_log、dict_data。如果你少了几张表说明脚本执行中断了重新导入一次。3.2 从源码到可运行项目的完整步骤拿到源码包后不要直接双击打开pom.xml先解压确认目录结构是完整的。标准结构应该是community-system/ ├── sql/ │ └── community.sql ├── src/ │ ├── main/ │ │ ├── java/com/example/community/ │ │ │ ├── controller/ │ │ │ ├── service/ │ │ │ ├── mapper/ │ │ │ ├── entity/ │ │ │ ├── config/ │ │ │ └── CommunityApplication.java │ │ └── resources/ │ │ ├── mapper/ │ │ ├── templates/ │ │ ├── static/ │ │ └── application.yml │ └── test/ ├── pom.xml └── README.MD在IDEA里导入的步骤是File → New → Project from Existing Sources → 选择pom.xml → 以Maven项目打开。等待依赖下载完毕期间需要联网如果公司内网没有Maven私服下载速度会很慢建议用阿里云镜像在settings.xml的mirror节点里配置一下。依赖下载完成后修改application.yml里的数据库账号密码确保和你本机的一致。然后直接运行CommunityApplication这个类。启动日志出现Started CommunityApplication in xx seconds说明成功。访问http://localhost:8080看到登录页就ok。3.3 关键业务模块实现演示系统默认的登录账号是admin/admin123。登录成功后是后台管理端首页左侧菜单栏包含社区管理、居民管理、健康管理、隔离管理、出入管理、物资管理、统计报表、系统管理。我实际操作中最关心的模块是隔离管理和统计报表因为这两个模块最能体现系统的实用性。隔离管理模块的操作流程是先进入隔离人员列表点击新增选择居民这里从resident表里下拉选择设置隔离类型和预计结束日期保存后该居民状态自动变为隔离中。查看详情时底部会显示这个居民在隔离期间每日上报的健康信息。如果存在异常体温记录系统会用红色标签标出。解除隔离时需要填写解除原因提交后系统自动更新居民状态并生成一条操作日志。统计报表模块比较简单粗暴直接通过statisticsController把汇总数据查出来渲染到页面上。比如各小区隔离人数分布底层SQL就是按community_id分组统计isolation_info中状态为隔离中的记录数。这里有个细节社区表由于是自关联树形结构统计时如果直接按community_id分组子小区的人数不会汇总到父级所以源码里特意做了递归查询把父级下面所有子节点的数据都加在一起。这个逻辑是统计模块里最容易出错的地方答辩老师非常喜欢问你可以提前看看代码实现。3.4 二次开发常用配置与自定义功能如果你收到源码后想加一个疫苗预约模块基于这套代码的流程是这样第一步在数据库新建表vaccine_appointment字段包括id、resident_id、appointment_date、vaccine_type、status。第二步在MySQL里创建好表后直接用MyBatis Plus的代码生成器生成这层代码。项目里CodeGenerator类的主要配置就是AutoGenerator mpg new AutoGenerator(); GlobalConfig gc new GlobalConfig(); gc.setOutputDir(System.getProperty(user.dir) /src/main/java); gc.setAuthor(yourname); gc.setOpen(false); gc.setSwagger2(true); DataSourceConfig dsc new DataSourceConfig(); dsc.setUrl(jdbc:mysql://localhost:3306/community?...); dsc.setUsername(root); dsc.setPassword(123456); mpg.setDataSource(dsc); PackageConfig pc new PackageConfig(); pc.setParent(com.example.community); pc.setEntity(entity); pc.setMapper(mapper); pc.setService(service); pc.setController(controller); mpg.setPackageInfo(pc); mpg.execute();生成器的位置在src/test/java下测试执行即可。生成的Controller里还没有业务逻辑但增删改查的REST接口已经有了前端页面需要自己写Thymeleaf模板可以参考其他模块的列表页改一改。第三步在菜单表里加入这个新模块的菜单记录并给角色授权。菜单数据存在sys_menu表这里不加权限配置的话任何登录用户都能看到未授权菜单需要在管理端角色管理里分配权限。4. 常见问题与排查技巧实录4.1 启动类报错与依赖冲突处理清单我把帮同学调试时经常遇到的问题整理成了一个速查表建议收藏。问题现象根本原因解决方式启动直接闪退日志里没有错误端口被占用更换server.port或杀掉占用进程命令netstat -anojava.lang.IllegalArgumentException: jdbcUrl is required数据库连接配置没生效检查application.yml缩进datasource下url、username、password层级必须正确Table community.user doesnt exist数据库没有导入成功重新导入SQL脚本确认库名和连接URL一致Access denied for user rootlocalhost数据库账号密码错误用Navicat测试连接再看配置文件的账号密码是否一致ClassNotFoundException: com.mysql.cj.jdbc.DriverMySQL驱动依赖不匹配pom.xml里mysql-connector-java版本改为8.0.21Thymeleaf模板找不到页面文件放错位置确保html文件在src/main/resources/templates目录下Maven依赖一直下载失败网络或镜像问题配置阿里云镜像删除本地仓库中.lastUpdated后缀文件后重新导入Invalid bound statement (not found)Mapper XML和接口不匹配检查mapper包路径以及namespace是否写错如果日志里出现了Failed to load ApplicationContext这一大类错误不要慌重点看caused by后面的原因。几乎所有Spring Boot启动异常都会在这里给出具体的错误信息和行号跟着定位就行。4.2 访问页面时常见的500与404问题这类问题多出现在模板引擎的地址匹配上。比如点击菜单跳转到/resident/list但页面返回404排查思路是先打开Controller看有没有RequestMapping(/resident)的方法返回值为resident/list再看templates/resident/list.html文件是否存在。如果文件存在但页面样式全乱了排除静态资源路径问题检查HTML里引用的CSS和JS路径是否以/static开头合理的方式是th:href{/static/css/app.css}如果用了相对路径css/app.css在当前路由下就会解析错。页面上数据请求报500的话通常在控制台能看到Hibernate或MyBatis的SQL报错。最常遇到的是Unknown column xxx in field list这就是表结构和entity字段不一致。用实体类注解TableField映射即可。另一种情况是查询结果含有deleted1的记录但页面列表里没显示出来这就是前面提到的逻辑删除配置生效了如果你的表里没有deleted字段请把application.yml里logic-delete-field配置注释掉否则所有带WHERE logic_delete 0条件的查询都会失败。4.3 数据库连接稳定性与并发写问题社区防控系统在疫情高峰期可能会有几百人同时打开页面打卡数据库并发压力集中在一张health_info表上。如果你的演示环境只用了本地MySQL连接数默认是151在高并发下会报Too many connections。解决方式有两种。第一种提高连接池上限。在application.yml中加上HikariCP配置spring: datasource: hikari: maximum-pool-size: 20 minimum-idle: 5 connection-timeout: 30000注意这不是让你无限加大连接池过大会拖垮MySQL通常20-30足够。第二种从业务上减轻锁竞争。健康打卡接口如果发现当天已有记录应该用update by unique key的方式而不是先select再insert。源码里实际上用了ON DUPLICATE KEY UPDATE的SQL这个思路很聪明值得抄下来。4.4 逻辑删除、时区、编码三大隐性坑这三个坑几乎每个Spring Boot项目都会遇到放在最后重点提醒。第一个隐性坑是逻辑删除配置。MyBatis Plus在3.4.x之后默认开启逻辑删除的全局配置一旦你在application.yml里配了logic-delete-field: deleted所有查询都会自动带上deleted0条件。如果你的表没有deleted字段那执行SQL就会报错。很多人项目能启动但列表查询全是空大概率就是这个问题。处理方法很简单要么保证每张表都加上deleted字段要么干脆不配置逻辑删除改为手写删除状态控制。第二个隐性坑是数据库时区。使用MySQL 8.0以上版本时不设置serverTimezone会报错The server time zone value Öйú±ê׼ʱ¼ä is unrecognized这个错误信息本身是乱码很多人看着就懵。其实只要在URL末尾加上?serverTimezoneAsia/ShanghaiuseSSLfalse就能解决。MySQL 5.7默认不带时区问题但建议也加上保持一致。第三个隐性坑是文件乱码。首要是SQL文件用UTF-8其次是IDEA的File Encoding要设置为UTF-8最后是Tomcat容器层面。在application.yml里可以加一下server: tomcat: uri-encoding: UTF-8如果导出Excel时中文文件名乱码需要额外设置Content-Disposition的编码格式这部分代码一般放在工具类里。5. 性能优化与数据分析扩展思路5.1 列表查询慢的常见优化方向疫情社区防控系统最容易被卡住的场景就是网格员查询整栋楼的健康信息。默认实现是分页查health_info表如果数据量到了10万级别分页查询会越来越慢。我在实际调试中做了两个优化。第一个优化在SQL层。分页时避免LIMIT 100000, 20这种深分页写法改用子查询或游标分页比如只查id大于上一页最大id的记录。对于这个系统而言更合理的方案是把首页统计数据和详细列表分离统计走汇总表列表走普通分页不要在统计页上一口气加载全部明细。第二个优化是数据归档。将超过半年的健康打卡记录迁移到health_info_history表查询和统计自动走合并视图这样既能保留历史数据又不会拖慢主表操作。这个思路论文里写起来也很有价值属于实战级优化。5.2 基于轨迹数据做密接排查的思路这部分稍微展开一下。出入记录表里的数据其实就是居民位置轨迹的近似。如果某个居民确诊需要排查密接人员可以通过轨迹匹配算法来实现。简单做法是提取确诊人员的出入记录找出与其在相同时间段、相同门禁有交集的居民再按接触时间和距离加权排序。这个功能在原始的uljw7里没有实现但表结构完全支持你可以作为扩展方向写在论文的展望部分或者干脆自己实现一个简易版。实现原理不难SQL层面先按时间窗口关联SELECT a.resident_id, b.resident_id, COUNT(*) AS contact_count FROM access_record a JOIN access_record b ON a.community_id b.community_id AND a.access_time BETWEEN b.access_time - INTERVAL 15 MINUTE AND b.access_time INTERVAL 15 MINUTE AND a.device_id b.device_id AND a.resident_id ! b.resident_id WHERE a.resident_id 目标人ID GROUP BY a.resident_id, b.resident_id ORDER BY contact_count DESC中文描述一下就是同一个人在同一台门禁设备前后15分钟内的记录。这个逻辑能找出潜在的近距离接触者虽然不是精确的密接判定但对于一个课程设计来说足够专业和有亮点。再往前一步把接触次数5的居民自动生成待观察名单写入新表contact_trace这就是一个完整的密接排查闭环。5.3 大屏可视化与报表导出技巧如果答辩或者汇报时需要展示大屏原始项目里的首页图表尺寸和布局可以调整。改起来不难ECharts图的配置全在前端js/index.js将div容器改为全屏布局再通过window.addEventListener(resize...)使图表自适应即可。大屏数据源可以考虑用定时任务刷新在Spring Boot里用Scheduled注解每30秒拉一次最新统计再通过WebSocket推送到前端页面效果会很亮眼。报表导出功能一般走POI。导出每日健康打卡汇总表时注意行数超过65535就要用.xlsx格式不能再用.xls。我建议封装一个Excel工具类统一处理表头样式、单元格宽度和下拉选项别在Controller里直接写POI代码不然换一个导出需求就要改一遍。源码里已经有一个ExcelUtils可以直接复用。6. 个人实操心得与后续扩展建议我前后帮别人调过不下五个同类系统这个uljw7版本在课程设计里面算是结构清楚的没有故意写得晦涩难懂的地方也没有花里胡哨炫技业务代码读起来不费劲。如果你现在的任务是快速交付一个能演示、能答辩的社区防控系统基于这套源码改个Ui、换成自己的数据库名字和logo基本上是性价比最高的路线。但我也想提醒一句如果你打算把这个系统写进简历说自己是独立开发那你在答辩前一定要把每个模块的业务逻辑吃透尤其是隔离管理、健康打卡、统计报表这三块。老师最爱问的就是如果隔离时间到了但是最后一次核酸结果还没出怎么办重复打卡怎么处理多小区汇总数据怎么算的这些问题在源码里都有体现但你必须能用自己的话讲明白而不是背代码。从扩展角度看这个系统至少还有三个方向可以继续做。第一把登录模块升级为Spring Security加JWT的前后端分离方案同时保持原有架构兼容第二引入Redis缓存热点数据比如社区公告、每日打卡统计减轻MySQL压力第三对接第三方接口比如把体温数据推送到上级平台的API或者接入短信通知接口不用真的对接留下接口文档和Mock实现就可以在论文里写预留接口能力。这些都是比较常规但加分的方向。核心数据库和业务层不动只加中间层和接口层工作量和收益的比值非常划算。最后送一个我自己用着顺手的小惯例每次改完数据库表结构都要重新导出一次最新的SQL脚本并提交到git不然过两周你连自己删了哪个字段都不记得。项目的README.md我也建议重写一下把启动步骤、默认账号、关键配置项、表清单都列出来到时候写使用说明文档时直接复制效率翻倍。这个系统本身不难难的是把每一个细节都考虑周全。希望这篇文章能帮你把源码真正跑起来而不是停留在下载了但启动不了的阶段。祝顺利。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Macbook本地部署编程大模型推荐:把Ollama endpoint改到TaoToken的实测配置 2026/10/2 11:28:23

Macbook本地部署编程大模型推荐:把Ollama endpoint改到TaoToken的实测配置

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

阅读更多 →
OpenRig开源直播设备搭建指南:硬件选型与推流调优 2026/10/2 11:28:17

OpenRig开源直播设备搭建指南:硬件选型与推流调优

我一直觉得,做直播和视频创作的人,迟早都会面对一个灵魂拷问:别人那套看着很专业的活儿,到底是怎么攒起来的?“rig”这个词,在创作者圈子里出现频率越来越高,它指的不是某一件设备,而…

阅读更多 →
扩散模型原理解析:加噪与去噪的数学本质 2026/10/2 11:28:16

扩散模型原理解析:加噪与去噪的数学本质

1. 这不是魔法,是可推导的数学过程:为什么“加噪→去噪”能生成图像?很多人第一次听说扩散模型,听到“给图片加噪声再一点点去掉”,第一反应是:“这也能行?”——听起来像把一杯咖啡搅浑再试图倒…

阅读更多 →
昇腾超节点如何突破大模型训推的算力、存储与通信三堵墙 2026/10/2 11:28:10

昇腾超节点如何突破大模型训推的算力、存储与通信三堵墙

1. 项目概述:这不是又一个“算力神话”,而是工程现实的重新定义 “打破‘算力、存储、通信’三堵墙”——这句话在AI基础设施圈子里,过去三年被反复提起,但多数时候只停留在PPT里。直到昇腾超节点架构真正落地,我才在某…

阅读更多 →
训战推演系统:大模型与仿真闭环落地实战指南 2026/10/2 11:28:10

训战推演系统:大模型与仿真闭环落地实战指南

1. 这不是“AI玩具”,而是一套可闭环验证的实战推演引擎 “训战数模大模型人工智能仿真推演系统平台软件”——光看这个标题,很多人第一反应是:又一个堆砌热词的PPT项目?但我在过去八年里,从部队联合演习支撑系统、电力…

阅读更多 →
OpenRig开放钻井平台:从数据孤岛到智能决策的架构解析 2026/10/2 11:28:10

OpenRig开放钻井平台:从数据孤岛到智能决策的架构解析

坦白说,我第一次看到“openrig”这个词的时候,下意识以为是某个开源矿机支架或者摄影滑轨套件。但真正在这个行业里泡久了,跟钻井、油服、数字化的人聊多了以后,才发现它指代的是能源数字化圈子里正在快速升温的一个方向——开放钻…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉