新闻详情

新闻详情

首页 / 资讯中心 / 详情

SpringBoot+JavaWeb鲜牛奶订购系统开发实战与避坑解析

发布时间:2026/9/29 18:26:35来源:尧图网络
SpringBoot+JavaWeb鲜牛奶订购系统开发实战与避坑解析
简介这是一份面向计算机专业毕业设计、大作业及项目实战的Spring Boot JavaWeb鲜牛奶订购系统完整资源包。资源整合了可运行源码、毕业论文、任务书、开题报告、数据库脚本及说明文档覆盖从系统设计到部署运行的全流程适合需要通过真实电商业务场景训练Web开发能力的学习者。包内共848个文件总大小35.75MB以Java源码、Vue前端组件、JavaScript脚本、HTML页面及CSS样式为主另含数据库SQL脚本、Word/PDF文档、演示视频和部署批处理文件目录结构清晰便于按模块查阅。目前已有57人学习下载。借助该资源可快速搭建鲜牛奶订购系统原型理解用户管理、商品展示、订单处理等核心模块的实现思路同时获得高分毕设论文写作参考与调试经验是兼顾学习与实战的综合性资料。1. 这个 springboot 基于 JavaWeb 的鲜牛奶订购系统到底在解决什么问题先泼一盆冷水如果你以为这个课题的核心是“增删改查”那你的论文和答辩会很难看。鲜牛奶订购系统和普通商品系统的最大区别在于它有“订奶周期”和“配送状态”这两个隐含业务。用户不是买一箱牛奶就结束而是订一个周期每天或每周送一次中间可能暂停、改地址、退订。所以这个 springboot 基于 JavaWeb 的鲜牛奶订购系统本质上是把“订单”协调好再配合 用户、商品、订单明细、配送记录 这几类数据形成一个能自圆其说的闭环。我拿到这类标题的项目一般先拆压缩包里的文件源码、论文、说明文档、数据库文档。这四个文件不是装饰品毕业论文里最难的“系统设计”和“数据库设计”章节几乎都来自数据库文档。对要做课程设计或毕业设计的同学这个标题非常合适因为它既覆盖了 SpringBoot 最常见的技术栈又不需要拼高并发、分布式这些撑场面但难落地的概念。下面我会按“看文档、建表、写配置、写接口、踩坑、部署”的顺序把这个系统从头到尾说清楚。2. 从需求到表结构鲜牛奶订购系统的领域模型与数据库设计一个订购系统值不值得做先别看代码先看数据库文档。数据库文档里通常有 ER 图、建表 SQL、初始化数据、备份脚本这几样东西决定了你后面会不会返工。我见过不少同学上来就写代码写到订单状态流转时才发现表里少了一个“配送地址”字段然后到处打补丁。所以这一章先把模型定住。2.1 先把订购流程画成状态机下单、配送、退订鲜牛奶订购和普通商城的不一样普通商城订单状态一般是“待付款、已付款、已发货、已签收、已取消”。但订奶系统要复杂一点因为用户订的是周期后台还要管“每日配送”或者“工作日配送”。常见做法是把订单主表和配送记录拆开订单主表管整体状态配送记录表管每天或每次的配送进度。我一般建议把订单状态设计成这么几档待支付用户提交订单但还没付钱。配送中支付完成后台生成配送计划。已完成整个订购周期结束。已退订用户在周期内申请取消剩余配送清理掉。至于配送记录则单独用“待配送、已配送、配送失败”来标记。这样做的好处是订单主表的状态不用频繁更新配送进度只需要动子表。否则每天早上配送一次就要 update 订单主表一次状态日志完全没法查。从数据库建模角度看这个设计就是“一对多”一个订单对应多条配送记录。字段上建议给状态加一个status字段用 int 或 tinyint不要用字符串。后面写 Service 判断时Integer比较比String比较可靠得多。2.2 数据库文档里最核心的五张表用户、商品、订单、订单明细、配送记录大多数鲜牛奶订购系统的数据库文档核心就是五张表。我按重要程度列一下字段是参考具体以你拿到的数据库文档为准。表名核心字段说明userid, username, password, phone, address, role角色区分普通用户和管理员productid, name, spec, price, stock, statusspec 可以是 250ml/500mlstatus 控制上下架ordersid, user_id, order_no, total_amount, status, start_date, end_date订单主表周期起止时间order_itemid, order_id, product_id, quantity, price订单明细一个订单可能订多款奶品delivery_recordid, order_id, delivery_date, status, remark配送记录记录每天/每次的配送结果为什么订单和订单明细要拆开因为一个用户可能同时订“纯牛奶”和“酸奶”单价和数量不一样。如果只在一个订单表里塞product_id, quantity遇到多商品订单就没法存。哪怕你的系统只卖一种奶也要按一对多设计否则论文外审老师会直接问你第三范式。订单表里的order_no是个容易忽略的字段。不要用自增 id 直接当订单号自增 id 在并发时能看出订单量也容易被爬虫遍历。但订奶系统一般没有并发压力用order_no主要是为了对账所以生成规则可以用时间戳加随机数。建表 SQL 我给出一个核心版本注意不要忘记外键索引。很多学生建表时只写主键结果订单明细表里查order_id是全表扫描数据量小感觉不出来但论文里不好看CREATE TABLE orders ( id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT 订单主键, user_id BIGINT NOT NULL COMMENT 下单用户ID, order_no VARCHAR(32) NOT NULL COMMENT 订单编号, total_amount DECIMAL(10,2) NOT NULL COMMENT 订单总金额, status TINYINT NOT NULL DEFAULT 0 COMMENT 0待支付 1配送中 2已完成 3已退订, start_date DATE COMMENT 订购开始日期, end_date DATE COMMENT 订购结束日期, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, KEY idx_user_id (user_id), KEY idx_status (status) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;这里我特意加了KEY idx_status因为列表页常用“按状态查订单”。另外金额统一用DECIMAL(10,2)不要用float。float在 Java 里对应的是近似值钱算错了比功能跑不通还严重。2.3 数据库文档还包括什么初始化数据、ER 图、备份脚本拿到数据库文档不要只盯着建表 SQL。里面一般还有初始数据比如管理员账号、几条测试商品、一个测试用户、几笔订单。这些初始数据不光是让你登录还是你论文里截图用的素材。如果初始数据没有我建议自己补几条否则一打开系统空荡荡的演示时很尴尬。还有一点容易被忽略数据库文档里的 ER 图要和你论文里的图一致。如果 ER 图是用 PowerDesigner 或 draw.io 画的你在论文里最好重画成一致的风格。很多同学从网上找图套进去结果实体名和实际表名对不上答辩时老师看一眼就能抓出来。备份脚本则是“后悔药”。改表结构之前先跑一次备份Windows 上是mysqldump -u root -p milk milk_backup.sqlLinux 同样。这个习惯能救你很多次特别是写 SQL 时手滑删错了表。3. SpringBoot 项目骨架与 JavaWeb 配置让一个老课题跑起来数据库文档看明白了下面开始搭项目。这个课题是“SpringBoot 基于 JavaWeb”所以你只要用 SpringBoot 把传统的 Controller、Service、Mapper 三层结构做出来就对了不需要像微服务那样拆模块。很多课程设计项目最后翻车不是代码问题是 IDEA 里配置不对项目根本起不来。3.1 用 Spring Initializr 生成项目依赖选型与版本陷阱创建 SpringBoot 项目现在最常见的方式是 IDEA 里直接用 Spring Initializr也可以手写pom.xml。依赖方面我一般勾选这几项Spring Web提供 REST 接口MyBatis Framework数据库访问MySQL Driver连接 MySQLLombok减少 getter/setter 代码如果拿到手的压缩包是别人已经建好的项目那么你要注意对方用的 SpringBoot 版本。这里有个很常见的坑springboot 版本太高比如 3.x 出来的时间还不长很多教程和现成的 jar 包还是基于 2.x 的。SpringBoot 3.x 要求 Java 17而大多数课程设计和毕业论文环境还在用 JDK 8。所以我个人建议写这个题目用 SpringBoot 2.7.x 最稳Java 8 刚好支持MyBatis 整合资料也最多。下面是一个最小化的pom.xml片段注意注释的位置parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.7.18/version relativePath/ /parent dependencies !-- Web 层依赖 -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency !-- MyBatis 启动器 -- dependency groupIdorg.mybatis.spring.boot/groupId artifactIdmybatis-spring-boot-starter/artifactId version2.3.2/version /dependency !-- MySQL 驱动 -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId scoperuntime/scope /dependency !-- Lombok 可以少写实体类代码 -- dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId optionaltrue/optional /dependency /dependencies版本号不要乱填。像mybatis-spring-boot-starter的 2.3.2 是和 SpringBoot 2.7.x 匹配的如果你用了 SpringBoot 3.x这个 starter 就要换 3.0 的版本否则会报Property sqlSessionFactory or sqlSessionTemplate are required之类的错。3.2 application.yml 里必须调好的四个配置端口、数据源、MyBatis、日志创建好项目后第一件事是改application.yml。默认的application.properties也能用但 YAML 的层级结构更直观。我常用的配置如下server: port: 8080 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/milk_order?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/Shanghai username: root password: 123456 mybatis: mapper-locations: classpath:mapper/*.xml type-aliases-package: com.example.milk.entity configuration: map-underscore-to-camel-case: true logging: level: com.example.milk.mapper: debug这里四个配置都很关键。第一server.port容易冲突如果你本机 8080 被占了启动会直接报“Port already in use”改成 8081 就行。第二数据库连接 URL 里serverTimezoneAsia/Shanghai不加的话新版驱动会报时区错误。第三map-underscore-to-camel-case一定要开否则order_no映射不到orderNo这个 Java 属性上查出来全是 null。第四日志级别设成 debug是为了能看到 MyBatis 生成的 SQL排查问题时非常有用。注意password: 123456这种写法只适合本地开发。如果你的项目要放到服务器上演示至少不要用 root 账号最好单独建一个用户。3.3 三层架构与包命名Controller、Service、Mapper 的边界这个标题里的 JavaWeb 指的不是 JSP而是 Java Web 开发模式。SpringBoot 项目里常见的包结构是com.example.milk ├── controller # 接口层 ├── service # 业务层推荐写接口 实现 ├── mapper # MyBatis 的 Mapper 接口 ├── entity # 数据库实体类 ├── common # 返回结果封装、异常处理、工具类 └── config # 拦截器、跨域配置我见过一些项目把 Controller 里写满 SQL 逻辑Service 层空着。短时间看能跑但论文会写不下去因为“业务逻辑”没有落脚点。正确的做法是Controller 只接收参数和返回结果Service 管业务判断Mapper 只做数据库操作。比如后面要写的“下单”操作校验库存、扣库存、生成订单、生成配送记录这些都应该在 Service 里完成而不是在 Controller 里调两遍 Mapper。4. 从订单到配送核心接口的实现顺序与踩坑点骨架搭好接下来是核心功能。鲜牛奶订购系统里我认为必须实打实写出来的接口有三个登录、下单、配送状态更新。别小看这三个很多源码包里的登录只是查一次数据库下单也没做库存校验演示可以答辩一深问就露馅。这一章直接给代码代码的路子不是我发明的是 SpringBoot MyBatis 项目里最常见、最稳妥的写法。4.1 先做登录与权限控制拦截器还是过滤器登录功能本身不难难在权限控制。JavaWeb 时代常用的做法是写一个 FilterSpringBoot 里更常见的是用 HandlerInterceptor。我习惯用拦截器因为 SpringMVC 里拦截器能拿到 HandlerMethod可以更精确地控制哪些请求放行。先创建一个拦截器Component public class LoginInterceptor implements HandlerInterceptor { Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // 从 session 或 redis 里取用户 Object user request.getSession().getAttribute(user); if (user null) { // 没有登录直接返回未授权 response.setStatus(401); return false; } return true; } }再把它注册到 WebMvcConfig 里并配置放行路径Configuration public class WebConfig implements WebMvcConfigurer { Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()) .addPathPatterns(/**) .excludePathPatterns(/user/login, /user/register, /product/list, /images/**); } }逻辑说明addPathPatterns拦截所有请求excludePathPatterns放行登录注册接口和图片资源。这里有个细节如果你用了 Swagger还需要放行/swagger-ui/**等路径否则在线文档打不开。实际项目里我一般把放行的静态资源写全避免 CSS、JS 被拦截后页面布局全乱。4.2 商品列表到下单库存和订单明细的原子性下单是这个系统的业务核心也是答辩时最容易问的问题。写这个方法前要想清楚一个下单请求过来要做什么校验商品是否存在、是否上架。校验库存是否足够。扣减库存。生成订单主表记录。生成订单明细记录。如果是周期订购还要生成初始配送计划。这六件事要么全部成功要么全部失败所以必须加Transactional。下面是一个参考实现Service public class OrderServiceImpl implements OrderService { Autowired private ProductMapper productMapper; Autowired private OrderMapper orderMapper; Autowired private OrderItemMapper orderItemMapper; Override Transactional(rollbackFor Exception.class) public Order createOrder(Long userId, Long productId, Integer quantity, String startDate, String endDate) { // 查询商品并加锁避免并发时库存超卖 Product product productMapper.selectByIdForUpdate(productId); if (product null || product.getStatus() ! 1) { throw new RuntimeException(商品不存在或已下架); } if (product.getStock() quantity) { throw new RuntimeException(库存不足); } // 扣减库存 product.setStock(product.getStock() - quantity); productMapper.updateById(product); // 生成订单主表 Order order new Order(); order.setUserId(userId); order.setOrderNo(M System.currentTimeMillis()); order.setTotalAmount(product.getPrice().multiply(BigDecimal.valueOf(quantity))); order.setStatus(0); order.setStartDate(DateUtil.parse(startDate, yyyy-MM-dd)); order.setEndDate(DateUtil.parse(endDate, yyyy-MM-dd)); orderMapper.insert(order); // 生成订单明细 OrderItem item new OrderItem(); item.setOrderId(order.getId()); item.setProductId(productId); item.setQuantity(quantity); item.setPrice(product.getPrice()); orderItemMapper.insert(item); return order; } }参数说明selectByIdForUpdate是 MyBatis 里典型悲观锁写法对应 SQL 是SELECT * FROM product WHERE id ? FOR UPDATE。订奶系统并发量不高用悲观锁反而比乐观锁简单至少不用重试。Transactional(rollbackFor Exception.class)表示任何异常都回滚注意不要只写Transactional否则默认只回滚RuntimeException而不少异常是被Exception接住的。有一点要提醒如果你拿到的源码里没有selectByIdForUpdate只是先查库存再 update那并发时会超卖。课程设计不要求抗住秒杀但论文里写“支持并发控制”是你自己的免责条款所以建议加上。4.3 订单状态更新配送进度如何安全流转订奶系统里最容易被草草带过的接口是“配送更新”。很多同学只在数据库里改了status但没有任何条件判断结果把一个“配送中”的订单直接改成“已完成”中间跳过了“待配送”。常见做法是加一个校验条件用“旧状态 新状态”作为更新条件Mapper public interface DeliveryRecordMapper { // 只有当记录处于待配送时才能更新为已配送 Update(UPDATE delivery_record SET status 1 WHERE id #{id} AND status 0) int updateStatusFromPendingToDone(Long id); }如果这个 SQL 返回的受影响行数为 0说明这条记录的当前状态不是“待配送”那就不应该更新成功。Service 里可以这样判断int rows deliveryRecordMapper.updateStatusFromPendingToDone(recordId); if (rows 0) { throw new RuntimeException(当前记录状态不允许更新为已配送); }这个写法的好处是“状态流转”被数据库约束住了而不是靠 Java 代码先查再判断。就算未来有多个请求同时更新也只有一个能成功。状态机本身不需要引入设计模式用几个这样的条件更新就够了。你要是非要在代码里写if (当前状态 某个值)再更新那也行但是代码行数会多而且容易遗漏。5. 常见问题避坑从源码跑不起来到数据对不上任何带源码的项目都会遇到“拿到手跑不起来”的问题。大部分情况下不是代码坏了而是环境不一致。我根据这类 SpringBoot 项目的高频翻车现场总结了几条你按顺序排查能省下大半天时间。5.1 现象IDEA 里项目报红SpringBoot 启动直接退出原因最常见的是 JDK 版本和 Maven 依赖不匹配。比如项目是 SpringBoot 3.x 但本机 JDK 是 8或者项目里用到了 Lombok 但 IDEA 没装 Lombok 插件。解决先看pom.xml里spring-boot-starter-parent的版本再对照Project Structure里的 SDK。如果是 SpringBoot 2.x把 JDK 切成 8 或 11如果是 3.x至少 JDK 17。然后重启 IDEA让 Maven 重新导入依赖。实在不行就mvn clean compile跑一遍看具体报错。5.2 现象数据库表找不到时间字段报错原因你导入的 SQL 不是这个项目对应的版本或者项目里配置的url指向的数据库名字和 SQL 里的库名不一致。还有 MySQL 8 之前和之后的驱动类名不同。解决先确认application.yml里的url把3306/后面的库名记下来然后看数据库文档里的建表语句是不是创建了这个库。如果只给了表没给库自己补一句CREATE DATABASE milk_order DEFAULT CHARACTER SET utf8mb4;。时间字段报错一般是驱动版本和时区问题参考第 3.2 节加serverTimezoneAsia/Shanghai。5.3 现象下单后库存没扣订单明细为空原因大概率是 Service 方法上没加事务或者 Mapper 的 insert 没有把自增主键回填到对象里。如果是 MyBatis 的useGeneratedKeys没写order.getId()就是 null后面明细的order_id也就插入失败。解决下单方法加Transactional(rollbackFor Exception.class)同时给 insert 语句加参数insert idinsert parameterTypeOrder useGeneratedKeystrue keyPropertyid INSERT INTO orders(user_id, order_no, total_amount, ...) VALUES(#{userId}, #{orderNo}, #{totalAmount}, ...) /insertuseGeneratedKeystrue和keyPropertyid是最容易被忽略的两行。没有它们插入后主键不会回填后面所有依赖订单 id 的操作都会出问题。5.4 现象配置了跨域但请求还是失败原因你可能只加了CrossOrigin注解但没有处理预检请求OPTIONS。前后端分离时浏览器先发一个OPTIONS如果后端没有响应正确的跨域头浏览器会拦住后续请求。解决在项目里统一配置跨域而不是每个 Controller 加注解Configuration public class CorsConfig { Bean public CorsFilter corsFilter() { CorsConfiguration config new CorsConfiguration(); config.addAllowedOrigin(http://localhost:8081); config.addAllowedMethod(*); config.addAllowedHeader(*); UrlBasedCorsConfigurationSource source new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration(/**, config); return new CorsFilter(source); } }注意addAllowedOrigin不要用*用了*在某些版本里会连同allowCredentials一起冲突。本地调试时把端口写成前端项目的端口即可。5.5 现象怎么将 springboot jar 反编译成项目但反编译出来的代码跑不了原因你手上只有一个编译好的 jar 包想反编译回源码。反编译先把.class还原成.java但pom.xml、application.yml、SQL 这些资源文件不一定都打包在 jar 里或者被打包到了BOOT-INF/classes下反编译工具还原不了结构项目自然跑不了。解决不要指望反编译来复习这个课题。拿到 jar 包先用解压工具打开把BOOT-INF/classes下的application.yml和 Mapper XML 都提出来这样能看清配置。至于业务代码反编译工具比如 Java Decompiler 能看逻辑但 Lombok 生成的 getter/setter 会消失代码可读性很差。最直接的办法是去找原作者要一份源码或者用这份 jar 包对照数据库文档自己重写一个结构更清晰的项目反编译只用来比对实现思路。6. 部署与验证从本机到服务器最后看这三个指标到了最后一步项目在本机跑通了接下来要考虑的是“怎么让老师觉得你东西做完了”。部署不一定非得上云但如果能提供 Docker 部署流程论文里写出来是加分项。这一章给出基本命令和验证思路。6.1 用 Maven 打包与 Docker 部署的基本命令先把项目打成 jar 包mvn clean package -DskipTests打出来的包在target/目录下名字一般是milk-order-0.0.1-SNAPSHOT.jar。然后写一个最简单的 DockerfileFROM openjdk:8-jdk-alpine WORKDIR /app COPY target/milk-order-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT [java, -jar, app.jar]构建镜像并启动docker build -t milk-order:1.0 . docker run -d -p 8080:8080 --name milk-order milk-order:1.0逻辑说明这个 Dockerfile 只适合演示因为 MySQL 还在宿主机上容器里的应用访问localhost:3306会连不上数据库。如果数据库也在 Docker 里需要把application.yml里的url改成jdbc:mysql://mysql容器名:3306/milk_order。这点务必注意否则容器能启动但接口全报 500。6.2 验证一个订购系统是否真的可用功能验证之外的三件事跑通了不等于没错。我一般会做三件事验证第一用两个浏览器同时登录不同账号下单看库存扣减是否互相影响第二手动把一张配送记录的status改成“已配送”再走一次“更新配送”的接口看系统会不会允许从“待配送”跳到“已完成”第三查看日志里的 SQL确认没有慢查询和全表扫描。如果这三件都没问题这个系统才算能交差。日志怎么看第 3.2 节已经把com.example.milk.mapper调成了 debugMyBatis 会打印每一条 SQL 和参数。你只要在下单后去看控制台看到UPDATE product SET stock ? WHERE id ?和INSERT INTO orders ...按顺序出现就说明事务执行正常。如果只看到查询没看到更新说明事务可能没提交或方法没执行到。6.3 我的一点习惯先看数据库文档再动代码我经手过的课程设计和毕设项目里九成以上的问题都出在“表结构和代码对不上”。所以拿到那个压缩包我第一件事是解压后先看数据库文档里的建表 SQL然后再去看源码里的实体类。如果实体类字段和表字段不一致不要急着改实体类先从数据库文档里找到设计意图最后再决定改哪边。这个习惯帮我省过很多来回返工的时间。有一次拿到一个项目实体类里写了startDate数据库文档里叫begin_date一眼就能看出来是当时开发的人改了实体类但没同步表。这种问题如果你先跑项目会浪费一个下午去排查 null 值。希望这篇笔记能让你少踩点坑。如果这个标题就是你正在做的课题建议按第 2 章先改表、第 4 章再对代码最后用第 6 章的方法自测一遍。祝你的鲜牛奶订购系统一次跑通。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

黑五倒计时:AI批量生成营销图,赶在旺季前把素材备好 2026/9/29 22:37:52

黑五倒计时:AI批量生成营销图,赶在旺季前把素材备好

9月底了,黑五还有两个月。跨境卖家们已经开始准备了:选品、备货、广告投放、营销素材。但每年这个时候,卖家们都在踩同一个坑:营销素材来不及准备。黑五要多少素材?主图、详情图、广告图、社交媒体图、邮件头图……一个…

阅读更多 →
智能小车跑偏的系统级归因与实操校准 2026/9/29 22:37:52

智能小车跑偏的系统级归因与实操校准

1. 从“跑偏”这个现象倒推:它根本不是故障,而是系统在说话“机器人小车总跑偏”——这句话在实验室、创客工坊、高校课程设计现场,几乎每天都在被重复抱怨。我第一次听到时,正帮一个大三学生调试他做的巡线小车,他指着…

阅读更多 →
STM32工程落地法则:不贪资源、不放控制 2026/9/29 22:37:26

STM32工程落地法则:不贪资源、不放控制

1. “战略上不贪,也不放”不是口号,是STM32项目落地的生存法则你有没有经历过这样的场景:刚拿到一块STM32F407开发板,兴奋地打开CubeMX,勾选了USB Device、FSMC外扩SRAM、SPI Flash、I2C OLED、ADC多通道采样、FreeRTO…

阅读更多 →
全网最细的教程!!(自封) | VS Code 里用 Claude Code 插件接上 DeepSeek V4 Pro 的 settings.json 配置全流程 2026/9/29 22:37:26

全网最细的教程!!(自封) | VS Code 里用 Claude Code 插件接上 DeepSeek V4 Pro 的 settings.json 配置全流程

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

阅读更多 →
AI编程:Claude Code + VSCode + CC-Switch 配 TaoToken 的 settings.json 骨架 2026/9/29 22:37:26

AI编程:Claude Code + VSCode + CC-Switch 配 TaoToken 的 settings.json 骨架

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

阅读更多 →
智能车竞赛开源:从电源设计到串级PID的完整硬件方案 2026/9/29 22:37:26

智能车竞赛开源:从电源设计到串级PID的完整硬件方案

赛前我们约定的口号很简单:“最后一圈跑完,把能开的源全开了。”结果真到了21届智能车竞赛冲线那天,代码里还有一堆临时patch,PCB上还飞着两根杜邦线。等到这周把 soberup 战队的开源目录彻底整理出来,已经是赛后第四周…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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