文章目录
- 整体说明
- 一、背景
- 二、前置条件
- 三、生成 Promt
- 四、结果查看
- 五、结果编辑
摘要: Cursor生成Java的架构设计图
关键词: Cursor、人工智能 、开发工具、Java 架构设计图
整体说明
Cursor 作为现在非常好用的开发工具,非常的火爆,能够大幅提升工作效率和开发效率,其中就有 Java 的架构设计图,是真的不想自己画,这时候大模型工具的作用就可以体现出来了,如下:
一、背景
前面我们已经说了 README 的文件怎么生成了,大概知道了这个工程是怎么使用的,但是我们还是不知道具体模块的详细设计,具体流程的模块依赖关系,还有数据的流向流程图,想要更加深入地去了解详细设计,就需要架构设计图了。
二、前置条件
-
Cursor 安装和配置
需要安装 Cursor 和 配置好相关配置,如果不知道怎么配置,可以参考我的另一篇文章 《Cursor日常配置指南》
-
工程代码
不多说,就是需要使用 Cursor 打开我们工程代码文件,和 IDEA 差不多,区别就是 Cursor 有一个 Chat 的人工智能聊天窗口,这个就是我们之后,生成文档的方法
-
结果查看插件安装
当我们生成我们文档之后,我们得能打开预览我们文件,最终结果是带 Mermaid 的 Markdown 文件,所以需要下载插件 Markdown Preview Mermaid Support,直接在 Cursor 插件里搜索安装就可以了
-
Draw.io 安装
当我们生成的 Mermaid 图形代码我们,不满意,想要自己去编辑的时候,需要使用这个软件去编辑
三、生成 Promt
如下就是我常用的 Java架构设计生成promt,当然我这个是基于我写的代码工程写的,如果你的代码工程有自己的特点,可以再修改
# Mermaid工程架构图生成提示请为我的Spring Boot项目生成一个使用Mermaid语法的架构图,并以Markdown格式呈现。## 需求说明
1. 使用Mermaid语法创建多个图表来展示项目的不同架构视图
2. 所有图表应嵌入在一个Markdown文件中,标题为"项目名称模块架构设计"
3. 图表应清晰展示组件之间的关系和数据流
4. **重要:确保所有文字使用深色(黑色或深蓝色),保证在浅色背景上清晰可见**
5. **图表中的节点颜色应当使用较浅的填充色,但文字和边框使用深色,提高对比度**
6. **特别注意:在节点文本中使用换行时,确保使用正确的Mermaid语法**- 在节点文本中,使用 `<br>` 而不是 `\n` 进行换行- 例如:`A[第一行<br>第二行]`,而不是 `A[第一行\n第二行]`- 或者使用Markdown语法 `A["第一行<br/>第二行"]`
7. 为每个图表添加简短的说明文字,解释图表的目的和内容## 需要包含的图表类型### 1. 模块依赖图
- 使用Mermaid的`graph TD`语法
- 展示项目主要模块之间的依赖关系和内部组件结构
- 区分主要模块和内部组件(Controller、Service、Mapper等)
- 展示组件之间的调用关系
- 使用不同形状和颜色区分不同类型的模块和组件
- 文字标签使用深色(黑色或深蓝色),确保可读性
- 样式定义示例:```classDef module fill:#f9f,stroke:#333,stroke-width:2px,color:#000classDef component fill:#bbf,stroke:#33f,stroke-width:1px,color:#000classDef utility fill:#bfb,stroke:#3f3,stroke-width:1px,color:#000```### 2. 系统部署架构图
- 使用Mermaid的`flowchart TD`语法
- 展示系统在生产环境中的部署结构
- 包括客户端、负载均衡器、应用服务器、数据库、配置中心和外部系统
- 显示组件之间的网络连接和通信方式(HTTP请求、REST API、JDBC等)
- 使用不同颜色和样式区分不同类型的组件
- 样式定义示例:```classDef client fill:#e7f5fe,stroke:#1da1f2,stroke-width:1px,color:#000classDef server fill:#fcefe3,stroke:#fd8a3f,stroke-width:1px,color:#000classDef db fill:#f0fff0,stroke:#2ecc71,stroke-width:1px,color:#000classDef ext fill:#fcf3e3,stroke:#f1c40f,stroke-width:1px,color:#000classDef infra fill:#f5e8f5,stroke:#9b59b6,stroke-width:1px,color:#000```### 3. 数据流程图
- 使用Mermaid的`flowchart LR`语法
- 展示数据从数据源到最终存储的完整流程
- 包括API客户端、服务层、数据转换、数据访问层和数据库
- 显示触发流程的方式(手动触发或定时任务)
- 样式定义示例:```classDef external fill:#f9a,stroke:#a86,stroke-width:1px,color:#000classDef process fill:#adf,stroke:#68c,stroke-width:1px,color:#000classDef data fill:#ad5,stroke:#6b4,stroke-width:1px,color:#000classDef storage fill:#bbf,stroke:#99e,stroke-width:1px,color:#000```### 4. 核心业务流程图
- 使用Mermaid的`sequenceDiagram`语法
- 展示系统中的主要业务流程的时序关系
- 包括客户端、控制器、服务层、外部API和数据库等参与者
- 展示完整的调用流程,包括获取授权、数据处理和结果返回
- 使用loop表示循环处理(如分页获取数据)
- 用Note添加额外说明(如支持按日期范围同步)### 5. 数据库ER图
- 使用Mermaid的`erDiagram`语法
- 展示主要数据实体及其关系(一对多、多对多等)
- 包括每个实体的主要字段、主键和外键
- 使用明确的关系符号(||--o{、}o--o{等)表示实体间关系
- 为每个字段添加类型和简短描述### 6. 接口调用关系图
- 使用Mermaid的`flowchart TB`语法
- 展示系统内部各组件间的接口调用关系
- 包括控制器、服务接口、服务实现类、API客户端和数据访问层
- 显示与外部系统和数据库的交互
- 样式定义示例:```classDef controller fill:#f9f0ff,stroke:#333,stroke-width:1px,color:#000classDef service fill:#e6f7ff,stroke:#333,stroke-width:1px,color:#000classDef impl fill:#f0f5ff,stroke:#333,stroke-width:1px,color:#000classDef client fill:#fff7e6,stroke:#333,stroke-width:1px,color:#000classDef external fill:#f9f9f9,stroke:#333,stroke-width:1px,color:#000classDef database fill:#f6ffed,stroke:#333,stroke-width:1px,color:#000```### 7. 异常处理流程图
- 使用Mermaid的`flowchart TD`语法
- 展示系统的异常处理机制和流程
- 包括异常触发、捕获、分类处理和恢复机制
- 展示不同类型异常的处理策略(业务异常、系统异常、网络异常、数据库异常)
- 样式定义示例:```classDef normal fill:#f0f5ff,stroke:#333,stroke-width:1px,color:#000classDef decision fill:#fff7e6,stroke:#333,stroke-width:1px,color:#000classDef error fill:#fff1f0,stroke:#333,stroke-width:1px,color:#000classDef recovery fill:#f6ffed,stroke:#333,stroke-width:1px,color:#000classDef response fill:#f9f0ff,stroke:#333,stroke-width:1px,color:#000```### 8. 性能优化设计图
- 使用Mermaid的`flowchart LR`语法
- 展示系统的主要性能优化策略
- 包括数据库优化、API调用优化、缓存策略和并发处理等方面
- 展示各优化点的具体技术措施
- 样式定义示例:```classDef strategy fill:#f9f0ff,stroke:#333,stroke-width:1px,color:#000classDef category fill:#e6f7ff,stroke:#333,stroke-width:1px,color:#000classDef technique fill:#f6ffed,stroke:#333,stroke-width:1px,color:#000```## 格式要求
1. 所有图表应使用正确的Mermaid语法
2. Markdown文件应包含适当的标题和说明文字
3. 每个图表前应有简短的说明,解释图表的目的和内容
4. 每个图表后应有简短的解释,说明图表展示的内容和价值
5. 使用注释来增强图表的可读性(使用`%%`添加注释)
6. **对于所有图表,确保:**- 节点填充色使用浅色,便于查看- 文字和边框使用深色(黑色 `#000` 或深蓝色 `#333`),确保可读性- 箭头标签使用深色- 样式定义中添加 `color:#000` 或 `color:#333` 属性- **使用 `<br>` 进行文本换行,不要使用 `\n`**
7. 在文档最后添加总结部分,简要概括所有图表的内容和价值## 换行示例
```mermaid
flowchart TDA[单行文本] -->|调用| B["多行文本<br>第二行"]C["控制器<br>Controller"] -->|调用| D["服务层<br>Service<br>业务处理"]
```## 样式示例
```mermaid
flowchart TDA[模块A] -->|调用| B[模块B]%% 样式定义 - 确保文字为深色classDef default fill:#f9f9f9,stroke:#333,stroke-width:1px,color:#000classDef important fill:#ffe6e6,stroke:#c00,stroke-width:2px,color:#000%% 应用样式class B important
```请基于项目实际情况创建这些图表,确保图表内容准确、完整且易于理解。如果某些信息不足,可以使用合理的假设,但请在说明中注明。最终的文档应能全面展示系统的架构设计、工作流程和数据关系,帮助开发人员和维护人员理解系统。
四、结果查看
使用 Ctrl + L 打开 Chat 窗口,在 Chat 窗口 如下执行触发这个文档生成即可
其中要 @Java架构设计生成promt 和 @工程代码文件夹,表示引用
生成结果如下,这个是 Mermaid 语法
可点击右上角预览呈现结果
五、结果编辑
打开 架构设计.md
找到你不满意的 mermaid 图代码,复制
打开 Draw.io ,并新建一个空白绘图
然后 依次点击 调整图形 -> 插入 -> 高级 -> mermaid ,然后把刚刚复制的 mermaid 图代码 放进去
之后就能自由编辑图形了