在日常开发中,画UML类图总是一件让人又爱又恨的事——不是画起来费劲,就是改了代码忘了更新图。今天聊一个非常顺手的组合方案:IntelliJ IDEA + PlantUML + AI,三步搞定自动化类图生成,中间还省去了手动画线的痛苦。
一、下载idea插件
进入IDEA的 File → Settings → Plugins → Marketplace,搜索「PlantUML」,把排名最靠前的两个插件PlantUML Integration和PlantUML Parser都装上。下载速度可能有点慢,耐心等一会儿,装完后重启IDEA。

二、安装Graphviz
2.1 打开Graphviz官网(Download | Graphviz),往下翻找到对应自己电脑系统的版本。以Windows为例,我下载的是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文件里自带了一段示例代码,可以直接在上面改。



四、PlantUML结合AI
4.1 这一步是效率提升的关键。随便找个AI工具(比如ChatGPT),告诉它你需要生成PlantUML类图,然后把类名、属性和方法按格式发给它。下面是一个实际例子:

4.2 例如,我传给AI的类结构是这样的:
- 分类推荐类:
- 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.3 AI返回的PlantUML代码长这样:
@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类图。右键图片选择「Sa ve Diagram」,可以导出成PNG、SVG等多种格式。

总结
整个流程走下来,核心就是三步:装插件 → 配Graphviz → 用AI生成puml代码。过去手动画图花半天,现在写几行类描述就能自动出图,而且代码改了之后更新puml文件,类图跟着变,维护成本大幅降低。一个小技巧:尽量把类之间的关系写清楚,AI生成的类图就越准确。希望对你有帮助。