Cursor生成Java的架构设计图

文章目录

  • 整体说明
  • 一、背景
  • 二、前置条件
  • 三、生成 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 图代码 放进去

之后就能自由编辑图形了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/82835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1Panel运行的.net程序无法读取系统字体(因为使用了docker)

问题来源 我之前都是使用的宝塔面板&#xff0c;之前我也部署过我的程序&#xff0c;就没有什么问题&#xff0c;但是上次我部署我的程序的时候&#xff0c;就提示无法找到字体Arial。 我的程序中使用该字体生成验证码。 我多次安装了微软的字体包&#xff0c;但是依旧没有效…

面试总结。

一、回流&#xff08;重排&#xff09;与重绘&#xff08;Repaint&#xff09; 优化回答&#xff1a; 概念区分&#xff1a; 回流&#xff08;Reflow/Relayout&#xff09;&#xff1a;当元素的几何属性&#xff08;如宽高、位置、隐藏 / 显示&#xff09;发生改变时&#xff…

TensorFlow深度学习实战(20)——自组织映射详解

TensorFlow深度学习实战&#xff08;20&#xff09;——自组织映射详解 0. 前言1. 自组织映射原理2. 自组织映射的优缺点3. 使用自组织映射实现颜色映射小结系列链接 0. 前言 自组织映射 (Self-Organizing Map, SOM) 是一种无监督学习算法&#xff0c;主要用于高维数据的降维、…

Go内存泄漏排查与修复最佳实践

一、引言 即使Go语言拥有强大的垃圾回收机制&#xff0c;内存泄漏仍然是我们在生产环境中经常面临的挑战。与传统印象不同&#xff0c;垃圾回收并不是万能的"记忆清道夫"&#xff0c;它只能处理那些不再被引用的内存&#xff0c;而无法识别那些仍被引用但实际上不再…

LeetCode刷题 -- 542. 01矩阵 基于 DFS 更新优化的多源最短路径实现

LeetCode刷题 – 542. 01矩阵 基于 DFS 更新优化的多源最短路径实现 题目描述简述 给定一个 m x n 的二进制矩阵 mat&#xff0c;其中&#xff1a; 每个元素为 0 或 1返回一个同样大小的矩阵 ans&#xff0c;其中 ans[i][j] 表示 mat[i][j] 到最近 0 的最短曼哈顿距离 算法思…

MySQL用户远程访问权限设置

mysql相关指令 一. MySQL给用户添加远程访问权限1. 创建或者修改用户权限方法一&#xff1a;创建用户并授予远程访问权限方法二&#xff1a;修改现有用户的访问限制方法三&#xff1a;授予特定数据库的特定权限 2. 修改 MySQL 配置文件3. 安全最佳实践4. 测试远程连接5. 撤销权…

如何使用 BPF 分析 Linux 内存泄漏,Linux 性能调优之 BPF 分析内核态、用户态内存泄漏

写在前面 博文内容为 通过 BCC 工具集 memleak 进行内存泄漏分析的简单认知包括 memleak 脚本简单认知,内核态(内核模块)、用户态(Java,Python,C)内存跟踪泄漏分析 Demo理解不足小伙伴帮忙指正 😃,生活加油知其不可奈何而安之若命,德之至也。----《庄子内篇人间世》 …

谷歌Sign Gemma: AI手语翻译,沟通从此无界!

嘿&#xff0c;朋友们&#xff01;想象一下&#xff0c;语言不再是交流的障碍&#xff0c;每个人都能顺畅表达与理解。这听起来是不是很酷&#xff1f;谷歌最新发布的Sign Gemma AI模型&#xff0c;正朝着这个激动人心的未来迈出了一大步&#xff01;它就像一位随身的、不知疲倦…

全生命周期的智慧城市管理

前言 全生命周期的智慧城市管理。未来&#xff0c;城市将在 实现从基础设施建设、日常运营到数据管理的 全生命周期统筹。这将避免过去智慧城市建设 中出现的“碎片化”问题&#xff0c;实现资源的高效配 置和项目的协调发展。城市管理者将运用先进 的信息技术&#xff0c;如物…

最新Spring Security实战教程(十七)企业级安全方案设计 - 多因素认证(MFA)实现

&#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Micro麦可乐的博客 &#x1f425;《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程&#xff0c;入门到实战 &#x1f33a;《RabbitMQ》…

logstash拉取redisStream的流数据,并存储ES

先说结论&#xff0c; window验证logstash截至2025-06-06 是没有原生支持的。 为啥考虑用redisStream呢&#xff1f;因为不想引入三方的kafka等组件&#xff0c; 让服务部署轻量化&#xff0c; 所以使用现有的redis来实现&#xff0c; 为啥不用list呢&#xff1f; 已经用strea…

IEC 61347-1:2015 灯控制装置安全通用要求详解

IEC 61347-1:2015 灯控制装置安全通用要求详解 IEC 61347-1:2015《灯控制装置 第1部分&#xff1a;一般要求和安全要求》是国际电工委员会&#xff08;IEC&#xff09;制定的关于灯控制装置安全性能的核心基础标准。它为各类用于启动和稳定工作电流的灯控制装置&#xff08;如…

26、跳表

在C标准库中&#xff0c;std::map 和 std::set 是使用红黑树作为底层数据结构的容器。 红黑树是一种自平衡二叉搜索树&#xff0c;能够保证插入、删除和查找操作的时间复杂度为O(log n)。 以下是一些使用红黑树的C标准库容器&#xff1a; std::map&#xff1a;一种关联容器&a…

LabVIEW音频测试分析

LabVIEW通过读取指定WAV 文件&#xff0c;实现对音频信号的播放、多维度测量分析功能&#xff0c;为音频设备研发、声学研究及质量检测提供专业工具支持。 主要功能 文件读取与播放&#xff1a;支持持续读取示例数据文件夹内的 WAV 文件&#xff0c;可实时播放音频以监听被测信…

JUC并发编程(二)Monitor/自旋/轻量级/锁膨胀/wait/notify/锁消除

目录 一 基础 1 概念 2 卖票问题 3 转账问题 二 锁机制与优化策略 0 Monitor 1 轻量级锁 2 锁膨胀 3 自旋 4 偏向锁 5 锁消除 6 wait /notify 7 sleep与wait的对比 8 join原理 一 基础 1 概念 临界区 一段代码块内如果存在对共享资源的多线程读写操作&#xf…

Doris 与 Elasticsearch:谁更适合你的数据分析需求?

一、Doris 和 Elasticsearch 的基本概念 &#xff08;一&#xff09;Doris 是什么&#xff1f; Doris 是一个用于数据分析的分布式 MPP&#xff08;大规模并行处理&#xff09;数据库。它主要用于存储和分析大量的结构化数据&#xff08;比如表格数据&#xff09;&#xff0c…

使用Virtual Serial Port Driver+com2tcp(tcp2com)进行两台电脑的串口通讯

使用Virtual Serial Port Drivercom2tcp或tcp2com进行两台电脑的串口通讯 问题说明解决方案方案三具体操作流程网上教程软件安装拓扑图准备工作com2tcp和tcp2com操作使用串口助手进行验证 方案三存在的问题数据错误通讯延时 问题说明 最近想进行串口通讯的一个测试&#xff0c…

transformer和 RNN以及他的几个变体区别 改进

Transformer、RNN 及其变体&#xff08;LSTM/GRU&#xff09;是深度学习中处理序列数据的核心模型&#xff0c;但它们的架构设计和应用场景有显著差异。以下从技术原理、优缺点和适用场景三个维度进行对比分析&#xff1a; 核心架构对比 模型核心机制并行计算能力长序列依赖处…

CSS6404L 在物联网设备中的应用优势:低功耗高可靠的存储革新与竞品对比

物联网设备对存储芯片的需求聚焦于低功耗、小尺寸、高可靠性与传输效率&#xff0c;Cascadeteq 的 CSS6404L 64Mb Quad-SPI Pseudo-SRAM 凭借差异化技术特性&#xff0c;在同类产品中展现显著优势。以下从核心特性及竞品对比两方面解析其应用价值。 一、CSS6404L 核心产品特性…

go语言map扩容

map是什么&#xff1f; ​在Go语言中&#xff0c;map是一种内置的无序key/value键值对的集合&#xff0c;可以根据key在O(1)的时间复杂度内取到value&#xff0c;有点类似于数组或者切片结构&#xff0c;可以把数组看作是一种特殊的map&#xff0c;数组的key为数组的下标&…