大家好,我是热心的大肚皮,皮哥。
大家在设计方案时是不是还在用ProcessOn这类工具来绘制,是不是时常还在为调整样式发愁,今天给大家推荐一个idea的插件,画图更高效。
PlantUML简介
PlantUML是一款开源的UML图绘制工具,支持通过文本来生成图形,使用起来非常高效。可以支持时序图、类图、对象图、活动图、思维导图、C4架构等图形的绘制。
安装
通过在IDEA中安装插件来使用PlantUML即可。
如何使用?
PlantUML支持时序图、用例图、类图、活动图、组件图、状态图、对象图、部署图、定时图、Network、Wireframe、Archimate、Gantt、MindMap、WBS、JSON、YAML。
时序图
新建方式
步骤1、选择新建PlantUML File
步骤2、选择时序图
使用案例
以Oauth2的时序图为例。代码如下。
代码语言:javascript复制@startuml
title Oauth2令牌颁发之授权码模式
actor User as user
participant "User Agent" as userAgent
participant "Client" as client
participant "Auth Login" as login
participant "Auth Server" as server
autonumber
user->userAgent:访问客户端
activate userAgent
userAgent->login:重定向到授权页面 clientId redirectUrl
activate login
login->server:用户名 密码 clientId redirectUrl
activate server
server-->login:返回授权码
login-->userAgent:重定向到redirectUrl 授权码code
deactivate login
userAgent->client:使用授权码code换取令牌
activate client
client->server:授权码code clientId clientSecret
server-->client:颁发访问令牌accessToken refreshToken
deactivate server
client-->userAgent:返回访问和刷新令牌
deactivate client
userAgent--> user:令牌颁发完成
deactivate userAgent
@enduml
效果如下。
- 本时序图关键说明如下:
- title可以用于指定UML图的标题;
- 通过actor可以声明人形的参与者;
- 通过participant可以声明普通类型的参与者;
- 通过as可以给参与者取别名;
- 通过->可以绘制参与者之间的关系,虚线箭头可以使用-->;
- 在每个参与者关系后面,可以使用:给关系添加说明;
- 通过autonumber我们可以给参与者关系自动添加序号;
- 通过activate和deactivate可以指定参与者的生命线。
- 这里还有个比较神奇的功能,当我们右键时序图时,可以生成一个在线访问的链接;
总结
以上只是简单介绍了下怎么使用及支持类型,更多强大的功能看官网(https://plantuml.com/zh/sitemap)。
小贴士
使用PlantUML的时候,常常会遇到流程过大,导致图片生成失败或者图片不清晰,怎么解决呢?告诉大家各小妙招。
首先在@startuml
下添加下面代码,调整大小和精度。
@startuml
skinparam dpi 750
scale 3500 width
scale 3000 height
skinparam wrapWidth 100
@enduml
然后打开设置。
最后修改限制大小即可。