PlantUML + VS Code

news2025/3/13 8:34:47

PlantUML 使用实例

文章目录

    • PlantUML 使用实例
      • 1. PlantUML简介
        • 1.1 什么是PlantUML
        • 1.2 PlantUML优势在哪
      • 2. 怎么用
        • 2.1 环境依赖
        • 2.2 VS Code组件安装
      • 3. 常用语法
        • 3.1 标记开始结束
        • 3.2 声明参与者
        • 3.3 声明关系
        • 3.4 对消息序列编号
        • 3.5 组合消息
      • 4. 实例

1. PlantUML简介

1.1 什么是PlantUML

PlantUML是一个用来快速绘制UML图的Java类库,支持常用的大部分UML图包括:时序图、用例图、类图、对象图、活动图、组件图、部署图、状态图、定时图,还支持这些非UML图:实体联系图、JSON数据、YAML数据、网络图、线框图形界面、架构图、规范和描述语言(DSL)、Ditaa图、甘特图、思维导图、WBS工作分解图等。

1.2 PlantUML优势在哪

使用广泛,生态成熟,目前PlantUML已经被集成到很多脚本和文档工具,可以满足一次编写到处转换

  • 文本编辑器和IDE:
    在这里插入图片描述

  • 支持多编程语言协作:
    在这里插入图片描述

  • 其他支持
    在这里插入图片描述

2. 怎么用

这里以visual studio code举例

2.1 环境依赖

PlantUML的组件是plantuml.jar,所以要运行必须配置java环境
官网下载后安装:https://www.oracle.com/cn/java/technologies/downloads

下载安装后记住安装目录,配置java的环境变量
创建JAVA_HOME
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置Path
在这里插入图片描述
在这里插入图片描述

完成配置后,保存
打开CMD,输入javac
在这里插入图片描述

配置完毕

2.2 VS Code组件安装

在这里插入图片描述

安装成功后,配置plantUML server
打开plantuml extension的配置
在这里插入图片描述

找到server,这里可以配置在线的server,也可以自己安装一台server
在线server:https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
在这里插入图片描述

安装组件Graphviz Preview
在这里插入图片描述

3. 常用语法

plantuml 教程地址:https://plantuml.com/zh/
上面有完善的plantuml语法教程
在这里插入图片描述

3.1 标记开始结束

以@startuml开始,@enduml结束
如果是在vs code里面记得用```plantuml,把源码包起来

3.2 声明参与者
  • participant(参与者),使用最多
  • actor(角色)
  • boundary(边界)
  • control(控制)
  • entity(实体)
  • database(数据库)
  • collections(集合)
  • queue(队列)
3.3 声明关系

使用->和–>表明指向关系

3.4 对消息序列编号

使用autonumber对消息进行编号,也可以指定从某个数字开始

3.5 组合消息
  • alt/else
  • opt
  • loop
  • par
  • break
  • critical
  • group, 后面紧跟着消息内容

alt和loop用的最多

4. 实例

@startuml
participant Participant as Foo order 1
actor       Actor       as Foo1 order 2
boundary    Boundary    as Foo2
control     Control     as Foo3
entity      Entity      as Foo4
database    Database    as Foo5
collections Collections as Foo6
queue       Queue       as Foo7

autonumber 3
Foo -> Foo1 : To actor 
Foo -> Foo2 : To boundary
loop
    Foo -> Foo3 : To control
end
alt 
    autonumber 5.1
    Foo -> Foo4 : To entity
else
    Foo -> Foo5 : To database
end

Foo -> Foo6 : To collections
Foo --> Foo7: To queue
@enduml

@startuml
participant abc as d

participant eeee as e

autonumber
d -> e: 测试消息

e --> d: 回复消息

autonumber 13.1
d -> e: 13.1
e -> d: 13.2

alt 条件一
    d ->e :
else 条件二
    d ->e :
else 条件三
    d ->e:
end


loop
d -> e:
end
@enduml

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1520786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NCDA大赛中哪些HTML5设计作品展现出色?

与传统的HTML网页设计相比,HTML5网页设计主要是对网页内容的加强。HTML5已成为目前最流行的标记语言,拥有成熟的社区和广泛的浏览器支持,HTML5完整的功能和强大的扩展性使设计师和开发者能够点铁成金。HTML5可以一手控制更多可控元素&#xf…

HDS-NAS分配资源并挂载win和linux

1、首先创建系统文件。 选择nas存储池 2、根据自己的需求创建相应的挂载方式 3、window配置 配置成功 最后即可在window系统网络位置映射网络即可, 格式为\\123.3.4.5\test 注:IP地址 4、liunx挂载方式 创建完成之后即可挂载,注意目的主…

Vue+OpenLayers7入门到实战:OpenLayers如何使用全屏控件,来实现地图容器的全屏和退出全屏功能

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7入门到实战 前言 本章介绍如何使用OpenLayers7在地图上使用地图全屏控件,来控制地图容器的全屏和退出全屏的功能。 注意:这里的全屏控件全屏指的是地图容器全屏,并非整个网页全屏。 网页整体全屏和指定网页节点全屏可以参…

FreeRTOS的学习路径介绍

FreeRTOS是一种广泛使用的开源实时操作系统(RTOS),它被设计为一个小型、可扩展的操作系统,适用于微控制器和嵌入式系统。由于其轻量级和可扩展性,FreeRTOS被广泛应用于物联网(IoT)、工业自动化、…

简单了解 vim 编辑器最基础的操作

简单了解 vim 编辑器最基础的操作 vim 这个是 Linux 上自带的一个文本编辑器,使用 vim 就可以更灵活的对文件进行编辑了(虽然和记事本的定位差不多,实际上vim的使用要复杂很多) 1.打开文件 语法:vim 文件名 示例:…

mysql 排序底层原理解析

前言 本章详细讲下排序,排序在我们业务开发非常常见,有对时间进行排序,又对城市进行排序的。不合适的排序,将对系统是灾难性的,这个不是危言耸听。可能有些人会想,对于排序mysql 是怎么实现的,…

【计算机网络篇】计算机网络的性能指标

文章目录 🍔计算机网络的性能指标🗃️常见的计算机网络性能指标⭐速率⭐带宽⭐吞吐量⭐时延⭐时延带宽积⭐往返时间⭐利用率⭐丢包率 🔎总结 🍔计算机网络的性能指标 计算机网络的性能指标被用来从不同方面度量计算机网络的性能 …

02-Java变量和运算符

1. 基本数据类型转换(Conversion) 在Java程序中,不同的基本数据类型的值经常需要进行相互转换。Java语言所提供的七种数值类型之间可以相互转换,基本数据类型转换有两种转换方式:自动类型转换和强制类型转换。boolean…

江科大stm32学习笔记【6-2】——定时器定时中断定时器外部时钟

一.定时器定时中断 1.原理 2.硬件 3.程序 此时CK_PSC72M,定时1s,也就是定时频率为1Hz,所以可以PSC7200-1,ARR10000-1。 Timer.c: #include "stm32f10x.h" // Device headerextern uint16_t Num;//声明跨文件的…

Python爬虫:原理与实战

引言 在当今的信息时代,互联网上的数据如同浩瀚的海洋,充满了无尽的宝藏。Python爬虫作为一种高效的数据抓取工具,能够帮助我们轻松地获取这些数据,并进行后续的分析和处理。本文将深入探讨Python爬虫的原理,并结合实战…

中国首个基于区块链的分布式算力网络上线

随着美国人工智能公司OpenAI近期发布的Sora视频模型,全球对高性能算力的需求突破了历史新高。Sora的创新在于它能够以超长生成时间、多角度镜头捕捉,理解物理世界的能力,这不仅是技术的一大突破,更是对算力需求的一大挑战。在这样…

VS2022开发上位机流程

1、生成串口调试助手的主要控件 2、生成串口对象 3、书写代码 3.1 串口的选择 跳转到图形化界面,然后双击空白位置,会自动生成From1_Load,此函数的作用是会更新串口的选择,然后加入代码,combox控件就可以识别串口 /* 新增自定义…

微信小程序云开发教程——墨刀原型工具入门(表单组件)

引言 作为一个小白,小北要怎么在短时间内快速学会微信小程序原型设计? “时间紧,任务重”,这意味着学习时必须把握微信小程序原型设计中的重点、难点,而非面面俱到。 要在短时间内理解、掌握一个工具的使用&#xf…

deepin23beta中SQLite3数据库安装与使用

SQLite 是一个嵌入式 SQL 数据库引擎,它实现了一个自包含、无服务器、零配置、事务性 SQL 数据库引擎。 SQLite 的代码属于公共领域,因此可以免费用于任何商业或私人目的。 SQLite 是世界上部署最广泛的数据库,其应用程序数量之多&#xff0c…

编译原理-实现识别标识符的词法分析器——沐雨先生

实验任务: 实现识别标识符的词法分析器 实验要求: 根据编译原理理论课教材中图2.3“标识符的转换图”,用C语言编写识别标识符的词法分析器,以文本文件为输入,控制台(或文件)输出识别出的每个…

别忽视平台的重要性

目录 前言: 与谁在一起,真的很重要 别把运气当才华,别把平台当本事 珍惜平台,用好平台 前言: 对于做技术开发的人来说,一头扎进技术里面去固然重要,但是很多时候,也要看看人际交…

springboot“爱相连”儿童慈善管理系统的设计与实现

摘要 随着网络科技的不断发展以及人们经济水平的逐步提高,网络技术如今已成为人们生活中不可缺少的一部分,而信息管理系统是通过计算机技术,针对用户需求开发与设计,该技术尤其在各行业领域发挥了巨大的作用,有效地促…

webpack5零基础入门-8清空前次打包文件与处理图标字体资源

1.配置output中的clean属性为true output: {/**文件输出路径 绝对路径*///__dirname 表示当前文件的文件夹目录path: path.resolve(__dirname, dist),//所有文件的输出目录/**文件名 */filename: static/js/dist.js,//入口文件输出文件名clean: true,//在打包前将path整个目录内…

Cesium 显示实时鼠标位置和视角信息

根据鼠标移动的位置计算鼠标所在位置的经纬度 监听视角变化情况显示视高、方位角、俯仰角 监测底图切片等级来显示当前地图缩放等级 showMapData() {let _this thislet handler new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas)handler.setInputAction(function (mo…

Soft Robotics 变结构手掌和变刚度手指的仿人软体手的人机交互操作-武科大ESIR课题组师兄成果

一、引言 在当今的机器人技术领域,人类对机器人的需求日益增长,涉及到工业生产、医疗护理、服务业等各个领域。然而,由于任务的多样性和复杂性,单独依靠自主机器人操作往往难以满足实际需求。为了解决这一问题,人机协作…