Spring Boot全栈实战:汽车4S店管理系统从部署到二次开发指南
这类项目最值得先看的不是功能列表而是它能不能帮你把 Spring Boot、前端、数据库这些技术栈串起来形成一个能跑起来、能改、能扩展的完整系统。对于正在找毕设、练手项目或者想巩固 Java Web 全栈技能的同学来说一个结构清晰、代码规范、依赖明确的“汽车4S店管理系统”是个不错的切入点。它覆盖了后台管理、前台展示、数据增删改查、权限控制等常见业务场景用到的 Spring Boot、H5/CSS3、MySQL 也都是主流技术。我建议你先别急着下载源码而是花几分钟搞清楚这个项目的核心价值它提供了一个可运行、可调试、可二次开发的工程样板。你能看到控制器、服务层、数据访问层、前端页面和静态资源是如何组织在一起的这对于理解一个 Web 应用从请求到响应的完整链路至关重要。下面我会按照实际学习和落地的顺序把这个项目拆解清楚。1. 先搞清楚项目能做什么以及你需要准备什么一个“汽车4S店管理系统”听起来范围很大但作为学习项目它的核心功能通常是围绕几个关键业务模块展开的。理解这些模块你才能知道代码该从哪里看起。1.1 核心功能模块从业务理解代码结构典型的4S店管理系统会包含以下模块这也是你阅读源码时的主线车辆信息管理车辆的入库、信息维护品牌、型号、颜色、价格、库存等、上下架。这对应着数据库的car表和后端的CarController、CarService。客户信息管理潜在客户、已购车客户的信息登记、跟进记录。这涉及到客户生命周期管理。销售订单管理客户购车后生成销售订单关联车辆、客户、销售员、金额等信息。这是业务的核心闭环。售后服务管理维修保养预约、工单管理、配件管理等。这部分业务逻辑相对独立。员工与权限管理不同角色如销售、客服、管理员的登录、权限控制。这通常会用到 Spring Security 或 Shiro以及前端的菜单动态渲染。数据统计与报表简单的销售统计、库存预警等。用于展示 Dashboard。对于学习而言你不需要实现所有功能。重点是把车辆管理和销售订单这两个核心流程的代码看懂、跑通其他模块可以举一反三。1.2 环境与工具准备别在第一步卡住在打开 IDE 之前先把环境配好。很多“跑不起来”的问题都出在这里。Java 开发环境JDK项目很可能要求 JDK 8 或 11、17。查看项目根目录的pom.xml或build.gradle文件中的java.version来确定。我建议统一使用JDK 11或17这是目前企业级 Spring Boot 项目的常用版本。环境变量确保JAVA_HOME配置正确命令行执行java -version和javac -version能输出对应版本。构建工具从关键词看项目使用Maven的可能性极大。你需要安装 Maven 并配置好环境变量MAVEN_HOME并加入PATH。同样在命令行用mvn -v验证。如果项目提供了pom.xmlIDE如 IntelliJ IDEA通常能自动识别并下载依赖。数据库MySQL这是最常用的选择。你需要安装 MySQL5.7 或 8.0 版本均可并启动服务。关键步骤找到项目中的application.properties或application.yml文件里面会有数据库连接配置。你需要根据这个配置在 MySQL 中手动创建一个同名数据库例如car_4s_db然后项目启动时框架如配合 MyBatis-Plus可能会根据实体类自动建表或者你需要手动执行提供的 SQL 脚本通常在src/main/resources目录下找sql文件夹。集成开发环境IDEIntelliJ IDEA推荐或Eclipse。IDEA 对 Spring Boot 的支持更友好。用 IDEA 打开项目根目录包含pom.xml的文件夹它会自动识别为 Maven 项目并开始下载依赖。前端依赖项目提到 H5/CSS3这意味着前端主要是静态页面可能配合了 jQuery、Bootstrap 等库。这些依赖通常通过 CDN 引入或在static目录下。确保浏览器能正常访问即可一般无需额外安装 Node.js除非它用了更复杂的前端框架。注意在导入项目后第一件事是检查pom.xml中的依赖版本是否与你本地环境兼容。有时网络问题会导致依赖下载失败可以尝试更换 Maven 镜像源如阿里云镜像。2. 项目导入、配置与首次运行环境准备好后我们进入实操环节。目标是让项目在本地成功启动并能通过浏览器访问登录页。2.1 源码获取与项目导入获取源码从提供的开源地址如 Gitee、GitHub下载项目 ZIP 包或克隆仓库。解压与打开解压到一个没有中文和空格的路径下。用 IDEA 选择File - Open然后选中包含pom.xml的根目录。等待依赖下载IDEA 会自动识别并开始下载 Maven 依赖。观察底部的进度条直到完成。如果卡住可以右键点击pom.xml选择Maven - Reload project。2.2 关键配置文件解读与修改项目能否跑起来八成取决于配置文件。找到src/main/resources/application.properties或.yml。你需要重点关注和修改以下几项# 数据库连接配置 (示例请根据你的实际环境修改) spring.datasource.urljdbc:mysql://localhost:3306/car_4s_db?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/Shanghai spring.datasource.usernameroot spring.datasource.passwordyour_password # 改成你的MySQL密码 spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver # 数据库连接池配置保持默认或按需调整 spring.datasource.hikari.maximum-pool-size10 spring.datasource.hikari.minimum-idle5 # MyBatis-Plus 配置如果项目使用了 mybatis-plus.mapper-locationsclasspath:mapper/*.xml mybatis-plus.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl # 开启SQL日志调试时非常有用 # 服务器端口 server.port8080 # Thymeleaf 模板配置如果前端用了Thymeleaf spring.thymeleaf.prefixclasspath:/templates/ spring.thymeleaf.suffix.html spring.thymeleaf.modeHTML spring.thymeleaf.encodingUTF-8 spring.thymeleaf.cachefalse # 开发时设为false修改页面后立即生效修改要点将spring.datasource.url中的数据库名car_4s_db改为你在 MySQL 中创建的实际库名。将spring.datasource.password改为你本地 MySQL 的 root 密码。确认server.port没有被其他程序占用默认8080。2.3 数据库初始化这是最容易出错的一步。分两种情况处理情况一项目提供了SQL脚本。在resources目录下找到.sql文件用 MySQL 客户端如 Navicat、MySQL Workbench 或命令行连接到你的数据库执行这个脚本。它会创建所有表并插入初始数据如管理员账号。情况二依赖框架自动建表。很多 Spring Boot MyBatis-Plus 项目会通过实体类注解如TableName配合配置spring.datasource.initialization-mode新版本是spring.sql.init.mode来初始化。你需要检查配置并确保实体类定义与数据库表结构对应。更稳妥的做法是即使有自动建表也先手动执行一遍 SQL 脚本确保表结构和基础数据一致。2.4 启动项目并验证找到主启动类通常命名为XxxApplication例如Car4sApplication上面有SpringBootApplication注解。右键点击这个类选择Run ‘XxxApplication’。观察控制台日志。成功的标志是看到Tomcat started on port(s): 8080以及Started XxxApplication in x.xxx seconds字样并且没有红色错误日志。打开浏览器访问http://localhost:8080或http://localhost:8080/login具体路径看项目说明或控制器里的RequestMapping。你应该能看到登录页面。常见启动失败问题排查端口占用如果8080端口被占修改server.port为其他值如8090。数据库连接失败检查数据库服务是否启动用户名密码是否正确数据库名是否存在。查看日志中的具体错误信息。依赖冲突如果控制台报ClassNotFoundException或NoSuchMethodError可能是 Maven 依赖版本冲突。尝试执行mvn clean compile或使用 IDEA 的 Maven Helper 插件分析冲突。Java版本不匹配如果报Unsupported class file major version说明项目编译版本与你本地 JDK 版本不匹配。在pom.xml中调整java.version并重新编译。3. 代码结构与核心业务逻辑剖析项目跑起来只是第一步理解代码如何组织和工作才是学习的关键。我们以一个典型的“车辆信息管理”模块为例走一遍代码流程。3.1 项目分层架构MVC 三层架构一个标准的 Spring Boot Web 项目通常采用以下结构你的项目源码也大致如此src/main/java/com/example/car4s/ ├── Car4sApplication.java # 主启动类 ├── config/ # 配置类如WebConfig, SecurityConfig ├── controller/ # 控制层接收请求调用服务返回视图或数据 │ └── CarController.java ├── service/ # 服务层处理业务逻辑 │ ├── CarService.java # 服务接口 │ └── impl/ │ └── CarServiceImpl.java # 服务实现类 ├── mapper/ # 数据访问层MyBatis Mapper接口 │ └── CarMapper.java ├── entity/ # 实体类与数据库表对应 │ └── Car.java └── dto/ # 数据传输对象可选 └── CarDTO.java src/main/resources/ ├── application.properties # 主配置文件 ├── static/ # 静态资源css, js, images ├── templates/ # 模板文件html如Thymeleaf │ └── car/ │ ├── list.html │ └── edit.html └── mapper/ # MyBatis XML映射文件如果用了XML方式 └── CarMapper.xml3.2 一个请求的完整生命周期以“查询车辆列表”为例假设你在浏览器访问http://localhost:8080/car/list会发生什么前端发起请求浏览器向服务器发送一个 GET 请求到/car/list。控制器接收CarController中有一个方法处理这个请求。Controller RequestMapping(/car) public class CarController { Autowired private CarService carService; GetMapping(/list) public String listCars(Model model) { ListCar carList carService.getAllCars(); model.addAttribute(carList, carList); // 将数据放入模型供页面使用 return car/list; // 返回视图名称对应 templates/car/list.html } }服务层处理控制器调用CarService.getAllCars()。服务层负责业务逻辑这里可能只是简单的数据获取但也可能包含权限校验、数据格式化等。Service public class CarServiceImpl implements CarService { Autowired private CarMapper carMapper; Override public ListCar getAllCars() { // 这里可能加入缓存逻辑、状态过滤等业务规则 return carMapper.selectList(null); // 调用Mapper查询所有数据 } }数据访问层执行CarMapper是一个 MyBatis-Plus 的接口selectList(null)方法会生成 SQLSELECT * FROM car并执行。结果返回与渲染查询到的ListCar被逐层返回。控制器将其放入Model并指定视图为car/list。Spring Boot 的 Thymeleaf 模板引擎会找到templates/car/list.html将carList数据填充到 HTML 模板中生成最终的 HTML 页面。响应浏览器服务器将渲染好的 HTML 页面发送给浏览器浏览器展示车辆列表。3.3 关键技术与注解解析在阅读代码时你会遇到大量注解理解它们是读懂 Spring Boot 项目的钥匙。SpringBootApplication标记主启动类是Configuration、EnableAutoConfiguration、ComponentScan的组合。Controller/RestController标记一个类为控制器。RestController是ControllerResponseBody用于 RESTful API直接返回 JSON 数据。RequestMapping/GetMapping/PostMapping映射 HTTP 请求到控制器方法。Autowired自动注入依赖如将CarService注入到CarController。Service标记服务层组件。MapperMyBatis 的注解标记接口为数据映射器。Entity/TableJPA 注解标记实体类与数据库表的映射如果用了 JPA。DataLombok 注解自动生成 getter、setter、toString 等方法极大简化代码。对于前端关注 HTML 页面如何通过 Thymeleaf 语法如th:each、th:text来渲染后端传递的数据以及如何通过表单th:action、th:object提交数据到后端。4. 如何基于此项目进行二次开发与毕设改造拿到一个能跑的项目后如何把它变成你自己的毕设或深度练手项目关键在于“修改”和“扩展”。4.1 理解业务定制功能不要满足于原有的功能。思考一下增加模块原系统没有“配件库存管理”或“客户回访计划”你可以设计数据库表编写对应的 Entity、Mapper、Service、Controller 和前端页面把它加进去。深化逻辑原有的销售流程可能很简单。你可以加入“优惠券系统”、“贷款计算器”、“保险推荐”等更复杂的业务逻辑。优化体验增加数据导出Excel/PDF、图表统计ECharts、站内消息通知等功能。4.2 技术栈升级与替换这是展示你技术深度的好机会。前端现代化如果原项目是简单的 jQuery Bootstrap你可以尝试用Vue.js或React重写前端实现前后端分离。后端 Controller 则改造为返回 JSON 的RestController。引入缓存在CarService中为频繁查询且变化不大的数据如车辆品牌列表加入Redis缓存提升性能。加入消息队列对于“发送提车通知短信”这类异步、耗时的操作可以引入RabbitMQ或Kafka实现解耦和削峰填谷。完善安全控制如果原项目权限控制简单可以深入集成Spring Security实现基于角色的动态权限管理RBAC。容器化部署编写Dockerfile和docker-compose.yml将应用、MySQL、Redis 等服务容器化并尝试部署到云服务器。4.3 代码质量与工程化改进统一异常处理使用ControllerAdvice和ExceptionHandler全局处理异常返回友好的错误信息。接口文档化使用Swagger或Knife4j自动生成 API 文档方便前后端联调。加入日志使用SLF4J Logback规范地记录业务日志、操作日志便于排查问题。编写单元测试为 Service 层和 Controller 层编写 JUnit 单元测试保证核心逻辑的正确性。4.4 毕设文档与答辩准备如果你将此项目用于毕设代码只是其中一部分。你需要需求分析清晰地描述你改造后的系统解决了什么问题有哪些角色每个角色有什么功能。系统设计画出系统架构图前后端分离/不分离、功能模块图、数据库 E-R 图、核心类图或时序图如购车流程。核心代码展示在论文中贴出你新增或修改的关键代码片段并加以说明。不要贴大量重复或无关的代码。测试与结果描述你的测试环境、测试用例功能测试、性能测试等和测试结果。可以截图展示系统界面。总结与展望总结项目实现过程中的收获、遇到的难点及解决方案并对系统未来的优化方向进行展望。5. 常见问题排查与学习建议在学习和改造过程中你肯定会遇到各种问题。这里提供一个排查思路清单。5.1 运行与调试阶段问题页面404检查请求路径与RequestMapping是否一致。检查静态资源CSS/JS/图片路径是否正确。Spring Boot 默认static目录下的资源映射到/根路径。检查控制器方法是否返回了正确的视图名且该视图文件存在于templates目录下。页面显示乱码检查数据库、配置文件、前端 HTML 文件的编码是否统一为 UTF-8。在application.properties中配置spring.http.encoding.charsetUTF-8和spring.http.encoding.forcetrue。数据库操作失败打开 MyBatis-Plus 的 SQL 日志配置mybatis-plus.configuration.log-impl查看实际执行的 SQL 语句是否正确。检查实体类字段名与数据库表列名是否对应注意驼峰命名转下划线。检查 MyBatis Mapper 的 XML 文件如果有中的 SQL 语法。5.2 二次开发阶段问题新加的接口访问不到确认你的 Controller 类是否被 Spring 扫描到是否在启动类同级或子包下或者使用了ComponentScan指定包路径。确认方法上的请求映射注解GetMapping等无误。依赖冲突使用mvn dependency:tree命令查看依赖树排查重复或版本冲突的 jar 包。在 IDEA 中可以用Maven Helper插件可视化地解决冲突。前端修改不生效如果是 Thymeleaf 模板确保spring.thymeleaf.cachefalse开发模式。清理浏览器缓存或使用 CtrlF5 强制刷新。如果是静态资源可能需要重启应用或者检查资源路径。5.3 高效学习路径建议先跑通再理解不要一开始就陷入代码细节。先把项目跑起来从浏览器操作一遍主要功能感受一下数据流。画流程图针对一个核心流程比如“新增一辆车”在纸上或使用工具画出从前端表单提交到后端 Controller - Service - Mapper - 数据库再返回结果的完整时序图。这能帮你建立宏观认识。调试跟踪在 IDEA 中给控制器、服务层的方法打上断点然后在前端进行操作一步步跟踪代码执行过程观察变量的变化。这是理解程序运行逻辑最直接的方法。模仿与修改找一个现有的模块如车辆管理照葫芦画瓢自己从头实现一个类似的新模块如客户管理。在这个过程中你会遇到并解决大量实际问题。善用搜索与官方文档遇到报错把关键的异常信息复制到搜索引擎。多查阅 Spring Boot、MyBatis-Plus、Thymeleaf 的官方文档这是最权威的学习资料。这个“汽车4S店管理系统”项目作为一个脚手架价值在于它提供了一个真实的、可运行的上下文。你的目标不应该是仅仅复制它而是通过它理解企业级 Java Web 应用的标准开发范式并在此基础上进行创造和深化。当你能够流畅地增删改查模块、替换技术组件、并解决过程中遇到的各种坑时你对 Spring Boot 全栈开发的理解就真正上了一个台阶。

相关新闻

后台管理系统的过渡动画设计:从路由切换到数据刷新的流畅体验

后台管理系统的过渡动画设计:从路由切换到数据刷新的流畅体验

后台管理系统的过渡动画设计:从路由切换到数据刷新的流畅体验 一、引言:当"一闪而过"成为常态,后台的"硬切换"之痛 后台管理系统的用户体验一直是个被忽视的角落。似乎有一种约定俗成的偏见:B 端产品不需要动…

2026/10/18 11:18:09 阅读更多 →
计算机毕业设计之基于SpringBoot的文献资料管理系统的设计与开发

计算机毕业设计之基于SpringBoot的文献资料管理系统的设计与开发

万家灯火间的联系变得越来越紧密, 这与互联网技术的日益成熟息息相关。毫无疑义,崭露头角的新兴网络正在逐渐对现行的行业管理模式施加影响。于是传统的线下管理模式急需改变,在此用户需求的引领下,我们系统借助快速演进的网络平台&#xff0…

2026/10/18 11:18:25 阅读更多 →
【EU thetis_MRV网站之额外篇-Ice Class】

【EU thetis_MRV网站之额外篇-Ice Class】

Ice Class 目录 Ice Class 前言 一、EU ETS 1、法规 Regulations 2、计算公式 Calculation formula 二、FuelEU 1、法规 Regulations 2、附件 ANNEX 3、计算公式 Calculation formula 4、温室气体实际值 GHGIEactual 三、差异对比 总结 前言 thetis网站之额外篇Ice…

2026/10/18 11:18:50 阅读更多 →

最新新闻

海康球机ISAPI开发指南:破解摘要认证与三态报文解析

海康球机ISAPI开发指南:破解摘要认证与三态报文解析

简介:本资源是面向安防系统集成开发者、嵌入式工程师及智能视频平台研发人员的《ISAPI开发手册(海康球形摄像机)》官方技术文档,聚焦基于HTTP/REST架构的智能安全API对接实践,解决海康威视PTZ球机设备与上位平台间的认…

2026/10/20 12:27:16 阅读更多 →
Parler-TTS Mini技术渊源:Stability AI合成标注论文与高保真TTS开源复现指南

Parler-TTS Mini技术渊源:Stability AI合成标注论文与高保真TTS开源复现指南

【免费下载链接】parler_tts_mini_v0.1 项目地址: https://ai.gitcode.com/hf_mirrors/AI-ModelScope/parler_tts_mini_v0.1 点击查看 免费下载 Parler-TTS Mini v0.1 是一个轻量级文本转语音(TTS)模型,基于 Stability AI 的合成…

2026/10/20 12:27:16 阅读更多 →
自己动手写RTree:Java实现空间索引的核心算法与避坑实践

自己动手写RTree:Java实现空间索引的核心算法与避坑实践

简介:面向地理信息、数据库与计算机图形学场景,这份Java实现的RTree代码包展示了多维空间索引的完整构建方式,可高效完成点、矩形等几何对象的存储与检索,适合处理海量空间数据、研究索引结构或进行二次开发的工程师与研究人员。压…

2026/10/20 12:27:16 阅读更多 →
一次回车背后的网络协议全链路解析:从物理层到HTTP/3

一次回车背后的网络协议全链路解析:从物理层到HTTP/3

1. 这个问题到底在问什么?——从一次回车键按下开始的真实链路你有没有想过,当手指按下回车键的那一刻,浏览器里那个看似简单的域名输入框,其实已经悄然启动了一整套精密协作的通信系统?这不是一个孤立动作&#xff0c…

2026/10/20 12:27:16 阅读更多 →
dsoframer.ocx 部署指南:兼容 Office 2016 的版本选择与注册

dsoframer.ocx 部署指南:兼容 Office 2016 的版本选择与注册

简介:DSOFramer.ocx控件最新版是一份面向WinForm开发者的Office文档嵌入组件资源,重点解决在应用程序窗体内部直接查看与编辑Word、Excel等文档的需求,并已适配Office 2016,避免文档跳出为独立Office窗口而破坏界面统一性。压缩包…

2026/10/20 12:27:15 阅读更多 →
水风光互补调度与净现值计算:MATLAB资源包实战指南

水风光互补调度与净现值计算:MATLAB资源包实战指南

简介:本资源面向计算机、电子信息工程、数学等专业的大学生及新能源调度方向研究者,提供水风光互补调度系统的净现值计算与不同网格装机容量、出力系数影响分析的完整MATLAB实现方案,可用于课程设计、期末大作业与毕业设计。压缩包共18个文件…

2026/10/20 12:26:14 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50: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/20 9:50:45 阅读更多 →