如何不编写PlantUML图代码,通过Java API创建PlantUML图表?
PlantUML提供了无需拼接文本代码、直接通过Java API构造图表模型生成图片的能力,核心相关API及使用方式如下:
依赖要求
首先需要引入PlantUML核心依赖,Maven配置参考:
<dependency> <groupId>net.sourceforge.plantuml</groupId> <artifactId>plantuml</artifactId> <version>1.2023.13</version> </dependency>
建议固定具体版本,避免内部API变动导致兼容性问题。
核心API分类
不同类型图表对应不同的入口API类,位于net.sourceforge.plantuml及子包下:
类图
核心入口类为ClassDiagram
- 节点构造:通过
createEntity()方法创建普通类、抽象类、接口、枚举等实体,支持调用方法设置修饰符、属性列表、方法列表 - 关系构造:通过
addLink()方法添加继承、实现、关联、依赖、组合等关系,支持设置箭头样式、两端基数、关系标签
时序图
核心入口类为SequenceDiagram
- 参与者构造:通过
addParticipant()方法创建参与者、角色、边界、控制类等角色,支持设置别名、展示样式 - 交互构造:通过
addMessage()方法添加同步调用、异步调用、返回消息、注释等交互逻辑,支持设置消息标签、顺序、箭头方向
其他图表
- 用例图核心入口类为
UsecaseDiagram - 活动图核心入口类为
ActivityDiagram3 - 组件图核心入口类为
ComponentDiagram
所有类型图表的元素构造、关系添加逻辑和上述两种图表一致,均通过实例方法直接操作模型完成。
导出流程
无需拼接任何PlantUML文本代码,直接通过模型实例导出即可:
- 初始化对应类型的图表实例,示例:
ClassDiagram classDiagram = new ClassDiagram(); - 调用实例的增删改方法完成所有元素、关系的配置
- 构造输出流对象,调用实例的
exportImage()方法生成PNG、SVG、PDF等格式的输出文件
该系列API属于PlantUML内部实现接口,未对外承诺版本兼容性,生产环境使用建议固定依赖版本。
内容的提问来源于stack exchange,提问作者igo
相关产品推荐
相关产品推荐

