196 lines
6.1 KiB
Plaintext
196 lines
6.1 KiB
Plaintext
---
|
||
description: 牛只运输管理系统技术栈规范
|
||
globs:
|
||
alwaysApply: true
|
||
---
|
||
# 技术栈规范
|
||
|
||
## 项目技术栈总览
|
||
|
||
本项目采用前后端分离架构,使用现代化技术栈构建企业级应用。
|
||
|
||
## 后端技术栈 (tradeCattle/)
|
||
|
||
### 核心框架
|
||
- **Spring Boot** 2.6.0 - 应用基础框架
|
||
- **Java** 1.8 - 编程语言
|
||
- **Maven** - 项目构建和依赖管理
|
||
|
||
### 数据持久层
|
||
- **MyBatis-Plus** 3.5.3.2 - ORM 框架,基于 MyBatis 增强
|
||
- **Druid** 1.2.20 - 阿里巴巴数据库连接池
|
||
- **MySQL** 5.7+ - 关系型数据库
|
||
- **Redis** 5.0+ - 缓存和会话存储
|
||
|
||
### 权限认证
|
||
- **Sa-Token** 1.37.0 - 轻量级权限认证框架
|
||
- 支持多种登录方式
|
||
- 整合 Redis 会话存储
|
||
- 整合 JWT 令牌
|
||
- **JWT (jjwt)** 0.9.1 - JSON Web Token 实现
|
||
|
||
### 任务调度
|
||
- **XXL-Job** - 分布式任务调度平台
|
||
- **Spring @Scheduled** - Spring 内置定时任务
|
||
|
||
### API 文档
|
||
- **Swagger Fox** 3.0.0 - 在线 API 文档和调试工具
|
||
- **OpenAPI** - API 规范
|
||
|
||
### 工具库
|
||
- **Hutool** 5.8.25 - Java 工具类库
|
||
- **Commons IO** 2.13.0 - Apache IO 工具
|
||
- **Fastjson2** 2.0.43 - JSON 解析器
|
||
- **Apache POI** 4.1.2 - Excel 操作工具
|
||
- **Velocity** 2.3 - 模板引擎(代码生成)
|
||
|
||
### 云服务集成
|
||
- **腾讯云 COS** 5.6.89 - 对象存储服务
|
||
- **腾讯云 SDK** 3.1.423 - 腾讯云 Java SDK
|
||
- **腾讯云短信** - 短信通知服务
|
||
|
||
### 其他依赖
|
||
- **Lombok** - 简化 Java Bean 代码
|
||
- **transmittable-thread-local** 2.14.4 - 线程间参数传递
|
||
- **bizlog-sdk** 3.0.6 - 业务日志记录
|
||
- **Retrofit** 2.2.18 - HTTP 客户端(远程调用)
|
||
- **oshi-core** 6.4.11 - 系统信息获取
|
||
- **UserAgentUtils** 1.21 - 浏览器和系统识别
|
||
|
||
### 开发工具
|
||
- **Spring Boot DevTools** - 热部署
|
||
- **MyBatis-Plus Generator** 3.5.1 - 代码生成器
|
||
- **FreeMarker** - 模板引擎(代码生成)
|
||
|
||
## 前端技术栈 (pc-cattle-transportation/)
|
||
|
||
### 核心框架
|
||
- **Vue** 3.2.37 - 渐进式 JavaScript 框架
|
||
- **TypeScript** 4.6.4 - JavaScript 超集,类型安全
|
||
- **Vite** 3.1.0 - 下一代前端构建工具
|
||
|
||
### 状态管理和路由
|
||
- **Pinia** 2.0.22 - Vue 3 官方状态管理库
|
||
- **pinia-plugin-persist** 1.0.0 - Pinia 持久化插件
|
||
- **Vue Router** 4.1.5 - Vue 官方路由管理器
|
||
|
||
### UI 组件库
|
||
- **Element Plus** 2.2.17 - Vue 3 企业级 UI 组件库
|
||
- **@element-plus/icons-vue** 2.3.1 - Element Plus 图标
|
||
- **WindiCSS** 3.5.6 - 按需原子化 CSS 框架
|
||
|
||
### HTTP 客户端
|
||
- **Axios** 0.27.2 - 基于 Promise 的 HTTP 客户端
|
||
- **nprogress** 0.2.0 - 顶部进度条
|
||
|
||
### 地图服务
|
||
- **vue-baidu-map-3x** 1.0.38 - 百度地图 Vue 3 组件
|
||
- **vue3-baidu-map** 1.0.0 - 百度地图集成
|
||
|
||
### 富文本和视频
|
||
- **@wangeditor/editor** 5.1.23 - 富文本编辑器
|
||
- **@wangeditor/editor-for-vue** 5.1.12 - WangEditor Vue 3 集成
|
||
- **@liveqing/liveplayer-v3** 3.7.30 - 视频播放器
|
||
- **longze-vue3-video-player** 1.1.7 - Vue 3 视频播放器
|
||
|
||
### 数据可视化
|
||
- **ECharts** 5.5.0 - 数据可视化图表库
|
||
- **vue-chartjs** 5.3.0 - Vue Chart.js 封装
|
||
|
||
### 工具库
|
||
- **@vueuse/core** 10.10.0 - Vue Composition API 工具集
|
||
- **moment** 2.30.1 - 日期时间处理
|
||
- **js-cookie** 3.0.5 - Cookie 操作
|
||
- **mitt** 3.0.1 - 事件总线
|
||
- **qrcode** 1.5.4 - 二维码生成
|
||
- **file-saver** 2.0.5 - 文件下载
|
||
- **vue3-json-viewer** 2.2.2 - JSON 可视化
|
||
- **vue3-print-nb** 0.1.4 - 打印功能
|
||
- **vue-draggable-plus** 0.5.2 - 拖拽功能
|
||
- **element-china-area-data** 6.1.0 - 中国省市区数据
|
||
|
||
### 开发工具
|
||
- **ESLint** 8.57.0 - 代码检查工具
|
||
- **Prettier** 2.7.1 - 代码格式化工具
|
||
- **TypeScript ESLint** 5.38.1 - TypeScript 代码检查
|
||
- **Vue TSC** 0.40.4 - Vue TypeScript 编译器
|
||
|
||
### 构建插件
|
||
- **unplugin-auto-import** 0.11.2 - 自动导入 API
|
||
- **unplugin-vue-components** 0.22.7 - 组件自动导入
|
||
- **vite-plugin-svg-icons** 2.0.1 - SVG 图标集成
|
||
- **vite-plugin-windicss** 1.9.3 - WindiCSS 插件
|
||
|
||
### Git 提交规范
|
||
- **commitizen** 4.2.5 - Git 提交规范化工具
|
||
- **cz-customizable** 7.0.0 - 自定义提交规范
|
||
- **@commitlint/cli** 17.1.2 - 提交信息检查
|
||
- **@commitlint/config-conventional** 17.1.0 - 常规提交规范
|
||
|
||
### 样式预处理
|
||
- **Sass** 1.55.0 - CSS 预处理器
|
||
- **Less** 4.1.3 - CSS 预处理器
|
||
|
||
## 开发环境要求
|
||
|
||
### 后端开发环境
|
||
- **JDK** 1.8 或更高版本
|
||
- **Maven** 3.6+
|
||
- **MySQL** 5.7+
|
||
- **Redis** 5.0+
|
||
- **IDE**:IntelliJ IDEA / Eclipse
|
||
|
||
### 前端开发环境
|
||
- **Node.js** 16.0.0 或更高版本
|
||
- **Yarn** 1.22.0+ 或 pnpm 7.0.0+
|
||
- **IDE**:VS Code / WebStorm
|
||
|
||
### 数据库工具
|
||
- **Navicat** / **DataGrip** / **MySQL Workbench**
|
||
|
||
## 部署环境
|
||
|
||
### 生产环境配置
|
||
- **服务器**:Linux (CentOS 7+ / Ubuntu 18.04+)
|
||
- **Web 服务器**:Nginx (反向代理和静态资源)
|
||
- **应用服务器**:Spring Boot 内置 Tomcat
|
||
- **数据库**:MySQL 5.7+ (主从配置)
|
||
- **缓存**:Redis 5.0+ (集群或哨兵模式)
|
||
|
||
### 部署端口
|
||
- **后端端口**:16200
|
||
- **前端端口**:8080 (开发) / 80/443 (生产)
|
||
- **上下文路径**:`/api` (后端)
|
||
|
||
## 技术选型原则
|
||
|
||
1. **稳定性优先**:选择成熟稳定的框架和库
|
||
2. **社区活跃**:优先选择社区活跃、文档完善的技术
|
||
3. **性能考虑**:选择高性能的组件(如 Druid、MyBatis-Plus)
|
||
4. **易维护性**:使用主流技术栈,便于团队协作
|
||
5. **安全性**:集成安全认证和授权框架(Sa-Token)
|
||
6. **可扩展性**:支持分布式部署和横向扩展
|
||
|
||
## 技术栈版本管理
|
||
|
||
- 后端依赖版本统一在父 `pom.xml` 的 `<properties>` 中管理
|
||
- 前端依赖版本统一在 `package.json` 中管理
|
||
- 定期检查依赖更新和安全漏洞
|
||
- 升级依赖前进行充分测试
|
||
|
||
## 官方文档链接
|
||
|
||
### 后端技术文档
|
||
- Spring Boot: https://spring.io/projects/spring-boot
|
||
- MyBatis-Plus: https://baomidou.com/
|
||
- Sa-Token: https://sa-token.cc/
|
||
- Druid: https://github.com/alibaba/druid
|
||
- Hutool: https://hutool.cn/
|
||
|
||
### 前端技术文档
|
||
- Vue 3: https://cn.vuejs.org/
|
||
- Vite: https://cn.vitejs.dev/
|
||
- Pinia: https://pinia.vuejs.org/zh/
|
||
- Element Plus: https://element-plus.org/zh-CN/
|
||
- TypeScript: https://www.typescriptlang.org/zh/
|