Idea+PlantUML自動生成UML圖實現(xiàn)方式
一、下載idea插件
idea從FIle-->Settings-->Plugins-->Marketplace進入到插件下載界面,搜索PlantUML,點擊"install"下載最上面的兩個插件PlantUML Integration和PlantUML Parser,速度可能比較慢,下載完畢后重啟idea。

二、安裝Graphviz
2.1 進入官網:Download | Graphviz,往下滑找到自己適合自己電腦的版本,點擊即可進行下載,我下載的版本是graphviz-8.0.3。

2.2 雙擊安裝包進行安裝,一直點下一步,可自定義安裝路徑。




三、idea結合Graphviz
3.1 idea進入FIle-->Settings,搜索PlantUML,點擊Browse選擇Graphviz-->bin-->dot.exe,點擊Apply然后OK。

3.2 在任意目錄下右鍵-->New-->PlantUML File,以類圖為例,先點擊“class”,意為要生成的是類圖,再輸入文件名,回車,puml文件會新建在該目錄下,默認有puml代碼。



四、PlantUML結合AI
4.1 以ChatGPT為例生成puml代碼。因為以類圖為例,所以需要先告訴ChatGPT幫我們生成PlantUML的類圖,再把整個功能或流程有關的類的信息發(fā)給ChatGPT,包括類名、屬性和方法。

4.2 例如我發(fā)送給ChatGPT的類信息為:
分類推薦類:
- controller類:public class IndexController {
- 屬性:private CategoryService categoryService;
- 方法:public ResultVO firstLevel()
- service接口類:public interface CategoryService {
- 方法:public ResultVO firstProductList();
- service實現(xiàn)類:public class CategoryServiceImpl implements CategoryService {
- 屬性:private CategoryMapper categoryMapper;
- 方法:public ResultVO firstProductList()
- Mapper類:CategoryMapper
4.3ChatGPT生成的代碼為:
@startuml
class IndexController {
- categoryService: CategoryService
+ firstLevel(): ResultVO
}
interface CategoryService {
+ firstProductList(): ResultVO
}
class CategoryServiceImpl {
- categoryMapper: CategoryMapper
+ firstProductList(): ResultVO
}
interface CategoryMapper {
// ... mapper methods ...
}
class ResultVO {
- code: int
- msg: String
- data: Object
}
IndexController --> CategoryService : categoryService
IndexController --> ResultVO
CategoryService --> ResultVO
CategoryServiceImpl ..|> CategoryService : implements
CategoryServiceImpl --> CategoryMapper : categoryMapper
CategoryServiceImpl --> ResultVO
@enduml
4.4 將其復制粘貼到puml文件中,等待自動生成UML類圖,右鍵圖片點擊Save Diagram可將類圖保存為png等多種格式。

總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
SpringBoot?注解?@AutoConfiguration?在?2.7?版本中被新增的使用方法詳解
這篇文章主要介紹了SpringBoot?注解?@AutoConfiguration?在?2.7?版本中被新增(使用方法),本文給大家介紹的非常詳細,需要的朋友可以參考下2024-09-09
Java 中Timer和TimerTask 定時器和定時任務使用的例子
這篇文章主要介紹了Java 中Timer和TimerTask 定時器和定時任務使用的例子,非常具有實用價值,需要的朋友可以參考下2017-05-05
Java中的ConcurrentLinkedQueue使用解析
這篇文章主要介紹了Java中的ConcurrentLinkedQueue使用解析,一個基于鏈接節(jié)點的無界線程安全隊列,此隊列按照 FIFO(先進先出)原則對元素進行排序,隊列的頭部是隊列中時間最長的元素,需要的朋友可以參考下2023-12-12
Java中l(wèi)ength,length(),size()詳解及區(qū)別
這篇文章主要介紹了Java中l(wèi)ength,length(),size()詳解及區(qū)別的相關資料,需要的朋友可以參考下2016-11-11

