PlantUML
1、时序图箭头的表示&在线上加注释内容
--> :虚线
-> : 向右实线头
@startuml //开始标志
'https://plantuml.com/sequence-diagram 注释
autonumber
Alice -> Bob: Authentication Request //a->b : 线头上注释内容
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml //结束标志
2、使用participant 控制实体的先后顺序&不同实体的不同视图
@startuml
'https://plantuml.com/sequence-diagram
autonumber
participant participant as Foo
actor actor as Foo1
boundary boundary as Foo2
control control as Foo3
entity entity as Foo4
database database as Foo5
collections collections as Foo6
queue queue as Foo7
Foo -> Foo1 : To actor
Foo -> Foo2 : To boundary
Foo -> Foo3 : To control
Foo -> Foo4 : To entity
Foo -> Foo5 : To database
Foo -> Foo6 : To collections
Foo -> Foo7 : To queue
@enduml
actor:角色 boundary :边界 control:控制 entity:实体 database: 数据库 collections:集合 queue:队列
- participant :指定出现实体的左右顺序
- as :重命名参与者
- #read/yellow :指定实体的颜色,
- order :指定实体的出现顺序,小的在前。没有默认在前
3、改变颜色
#red(颜色名) | # RGB 值 ..
#可以指定于线条、实体类、生命块。
4、使用非字母符号 “ ”
@startuml
Alice -> "Bob()" : Hello
"Bob()" -> "This is very\nlong" as Long
' You can also declare:
' "Bob()" -> Long as "This is very\nlong"
Long --> "Bob()" : ok
@enduml
5、\n 发送消息时,进行手动换行
@startuml
Alice->Alice: This is a signal to self.\nIt also demonstrates\nmultiline \ntext
@enduml
6、修改箭头样式&修改箭头颜色
• 表示一条丢失的消息:末尾加x • 让箭头只有上半部分或者下半部分:将< 和> 替换成\或者/ • 细箭头:将箭头标记写两次(如>> 或//) • 虚线箭头:用-- 替代- • 箭头末尾加圈:->o • 双向箭头:<->
@startuml
Bob -[#red]> Alice : hello
Alice -[#0000FF]->Bob : ok
@enduml
7、标注页面标题,页眉和页脚&使用分割线到下一页
使用title 关键词增加标题 使用header 关键词增加页眉 使用footer 关键词增加页脚
关键字newpage 用于把一张图分割成多张。 在newpage 之后添加文字,作为新的示意图的标题。 这样就能很方便地在Word 中将长图分几页打印。
8、给消息添加注释
我们可以通过在消息后面添加note left 或者note right 关键词来给消息添加注释。你也可以通过使用end note 来添加多行注释。
@startuml
Alice->Bob : hello
note left: this is a first note
Bob->Alice : ok
note right: this is another note
Bob->Bob : I am thinking
note left
a note
can also be defined
on several lines
end note
@enduml
9 使用...表示延迟
@startuml
Alice -> Bob: 认证请求
...
Bob --> Alice: 认证响应
...5分钟后...
Bob --> Alice: 再见!
@enduml
10 增加、扩大间隔
@startuml
Alice -> Bob: message 1
Bob --> Alice: ok
|||
Alice -> Bob: message 2
Bob --> Alice: ok
||45||
Alice -> Bob: message 3
Bob --> Alice: ok
@enduml
11 生命线的激活与撤销
关键字activate 和deactivate 用来表示参与者的生命活动。一旦参与者被激活,它的生命线就会显示出来。activate 和deactivate 适用于以上情形。destroy 表示一个参与者的生命线的终结。
@startuml
participant User
User -> A: DoWork
activate A
A -> B: << createRequest >>
activate B
B -> C: DoWork
activate C
C --> B: WorkDone
destroy C
B --> A: RequestCreated
deactivate B
A -> User: Done
deactivate A
@enduml
还可以使用嵌套的生命线,并且运行给生命线添加颜色。
@startuml
participant User
User -> A: DoWork
activate A #FFBBBB
A -> A: Internal call
activate A #DarkSalmon
A -> B: << createRequest >>
activate B
B --> A: RequestCreated
deactivate B
deactivate A
A -> User: Done
deactivate A
@enduml
也可以使用自动激活关键字(autoactivate),这需要与return 关键字配合:
@startuml
autoactivate on
alice -> bob : hello
bob -> bob : self call
bill -> bob #005500 : hello from thread 2
bob -> george ** : create
return done in thread 2
return rc
bob -> george !! : delete
return success
@enduml
- return
新命令return 可以用于生成一个带有可选文本标签的返回信息。返回的点是导致最近一次激活生命线 的点。语法是简单的返回标签,其中标签(如果提供)可以是传统信息中可以接受的任何字符串。
12 只是简单的发送消息
@startuml
[-> A: DoWork
activate A
A -> A: Internal call
activate A
A ->] : << createRequest >>
A<--] : RequestCreated
deactivate A
[<- A: Done
deactivate A
@enduml
@startuml
participant Alice
participant Bob #lightblue
Alice -> Bob
Bob -> Carol
...
[-> Bob
[o-> Bob
[o->o Bob
[x-> Bob
...
[<- Bob
[x<- Bob
...
Bob ->]
Bob ->o]
Bob o->o]
Bob ->x]
...
Bob <-]
Bob x<-]
@enduml
13 移除底下的脚标
使用hide footbox 关键字移除脚注。
@startuml
hide footbox
title Footer removed
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
@enduml
14 自定义填充区
@startuml
skinparam ParticipantPadding 20
skinparam BoxPadding 10
box "Foo1"
participant Alice1
participant Alice2
end box
box "Foo2"
participant Bob1
participant Bob2
end box
Alice1 -> Bob1 : hello
Alice1 -> Out : out
@enduml
\