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等多种格式。

总结

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

相关文章

  • httpclient重定向之后获取网址信息示例

    httpclient重定向之后获取网址信息示例

    使用HttpClient进行127.0.0.1:8080地址的问题,然后该地址自动重定向127.0.0.1:8080/mobserver,如何获取该地址呢?使用HttpContext,下面是示例
    2014-02-02
  • SpringBoot 注解 @AutoConfiguration 在 2.7 版本中被新增的使用方法详解

    SpringBoot 注解 @AutoConfiguration 在 2.7 版本中被新增的使用方法详解

    这篇文章主要介绍了SpringBoot 注解 @AutoConfiguration 在 2.7 版本中被新增(使用方法),本文给大家介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • 详解快速搭建Spring Boot+Spring MVC

    详解快速搭建Spring Boot+Spring MVC

    本篇文章主要介绍了详解快速搭建Spring Boot+Spring MVC,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Java 中Timer和TimerTask 定时器和定时任务使用的例子

    Java 中Timer和TimerTask 定时器和定时任务使用的例子

    这篇文章主要介绍了Java 中Timer和TimerTask 定时器和定时任务使用的例子,非常具有实用价值,需要的朋友可以参考下
    2017-05-05
  • 详解Java线程的创建及休眠

    详解Java线程的创建及休眠

    今天带大家学习的是Java的相关知识,文章围绕着Java线程的创建及休眠展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Java微信授权登录小程序接口流程

    Java微信授权登录小程序接口流程

    微信授权登录小程序的流程是一个涉及前端和后端交互的过程,主要目的是让用户能够使用微信账号快速登录小程序,避免重复输入用户名和密码,下面给大家介绍Java微信授权登录小程序接口流程,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • Java实现本地缓存的方式汇总

    Java实现本地缓存的方式汇总

    引入缓存,主要用于实现系统的高性能,高并发,这篇文章主要介绍了Java实现本地缓存的几种方式,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Java中的ConcurrentLinkedQueue使用解析

    Java中的ConcurrentLinkedQueue使用解析

    这篇文章主要介绍了Java中的ConcurrentLinkedQueue使用解析,一个基于链接节点的无界线程安全队列,此队列按照 FIFO(先进先出)原则对元素进行排序,队列的头部是队列中时间最长的元素,需要的朋友可以参考下
    2023-12-12
  • Java中length,length(),size()详解及区别

    Java中length,length(),size()详解及区别

    这篇文章主要介绍了Java中length,length(),size()详解及区别的相关资料,需要的朋友可以参考下
    2016-11-11
  • Java过滤器Filter的基本使用教程

    Java过滤器Filter的基本使用教程

    过滤器通常对一些web资源进行拦截,做完一些处理器再交给下一个过滤器处理,直到所有的过滤器处理器,再调用servlet实例的service方法进行处理。本文将通过示例为大家讲解Java中过滤器Filter的用法与实现,需要的可以参考一下
    2023-02-02

最新评论