Idea+PlantUML自动生成UML图实现方式

 更新时间:2026年04月25日 08:49:50   作者:岑寂子  
本文详细介绍了如何在IntelliJ IDEA中安装PlantUML插件,并结合Graphviz工具生成UML类图,通过与ChatGPT等AI结合,可自动生成复杂的UML图,提高开发效率

一、下载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的类图,再把整个功能或流程有关的类的信息发给ChatGPT,包括类名、属性和方法。

4.2 例如我发送给ChatGPT的类信息为:

分类推荐类:

  • controller类:public class IndexController {
  • 属性:private CategoryService categoryService;
  • 方法:public ResultVO firstLevel()
  • service接口类:public interface CategoryService {
  • 方法:public ResultVO firstProductList();
  • service实现类: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等多种格式。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 详解Java单元测试之JUnit篇

    详解Java单元测试之JUnit篇

    这篇文章主要介绍了详解Java单元测试之JUnit篇,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • SpringBoot整合MybatisSQL过滤@Intercepts的实现

    SpringBoot整合MybatisSQL过滤@Intercepts的实现

    这篇文章主要介绍了SpringBoot整合MybatisSQL过滤@Intercepts的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 关于synchronized、volatile、ReentrantLock的区别与对比

    关于synchronized、volatile、ReentrantLock的区别与对比

    这篇文章主要介绍了关于synchronized、volatile、ReentrantLock的区别与对比,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java程序中十种常见报错及解决方案(附示例代码)

    Java程序中十种常见报错及解决方案(附示例代码)

    这篇文章主要介绍了Java程序中十种常见报错及解决方案的相关资料,掌握并解决这些常见的Java错误,将极大地提高你的开发效率和代码质量,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-01-01
  • Mybatis如何直接执行SQL语句

    Mybatis如何直接执行SQL语句

    这篇文章主要介绍了Mybatis如何直接执行SQL语句,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Java中的反射机制详解

    Java中的反射机制详解

    这篇文章主要介绍了JAVA 反射机制的相关知识,文中讲解的非常细致,代码帮助大家更好的理解学习,感兴趣的朋友可以了解下
    2021-09-09
  • Java中的Excel框架使用详解

    Java中的Excel框架使用详解

    这篇文章主要介绍了Java中的Excel框架使用详解,Java解析、生成Excel比较有名的框架有Apache poi、jxl,但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,需要的朋友可以参考下
    2023-11-11
  • 布隆过滤器详解以及其在Java中的实际应用

    布隆过滤器详解以及其在Java中的实际应用

    布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,这篇文章主要给大家介绍了关于布隆过滤器详解以及其在Java中的实际应用,需要的朋友可以参考下
    2023-12-12
  • SpringCloud实现基于RabbitMQ消息队列的详细步骤

    SpringCloud实现基于RabbitMQ消息队列的详细步骤

    在Spring Cloud框架中,我们可以利用RabbitMQ实现强大而可靠的消息队列系统,本篇将详细介绍如何在Spring Cloud项目中集成RabbitMQ,并创建一个简单的消息队列,感兴趣的朋友一起看看吧
    2024-03-03
  • Java switch多值匹配操作详解

    Java switch多值匹配操作详解

    这篇文章主要介绍了Java switch多值匹配操作详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论