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

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

2.2 雙擊安裝包進(jìn)行安裝,一直點(diǎn)下一步,可自定義安裝路徑。




三、idea結(jié)合Graphviz
3.1 idea進(jìn)入FIle-->Settings,搜索PlantUML,點(diǎn)擊Browse選擇Graphviz-->bin-->dot.exe,點(diǎn)擊Apply然后OK。

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



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

4.2 例如我發(fā)送給ChatGPT的類信息為:
分類推薦類:
- controller類:public class IndexController {
- 屬性:private CategoryService categoryService;
- 方法:public ResultVO firstLevel()
- service接口類:public interface CategoryService {
- 方法:public ResultVO firstProductList();
- service實(shí)現(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 將其復(fù)制粘貼到puml文件中,等待自動(dòng)生成UML類圖,右鍵圖片點(diǎn)擊Save Diagram可將類圖保存為png等多種格式。

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

