PlantUML入門

by tot in unsplash

1. 背景

隨著工作時間的增長,越發(fā)覺得用專業(yè)的圖形(用例圖,時序圖,ER圖等等)去準確表達想法是很重要的。比如針對某個需求繪制的的用例圖,比一段乏味的文字來的更加有意義,也便于別人理解。加之最近在學習源碼的時候,發(fā)現(xiàn)很多書籍中都會使用類圖,時序圖等UML語言來描述邏輯關(guān)系。于是就在網(wǎng)上找了找繪制UML語言時,業(yè)界主流的一些工具都用什么,找了半天,大部分都用了下面的工具Visio,StartUMLPlantUML。最終經(jīng)過比較選擇了PlantUML

2. 選擇PlatnUML原因

  • PlantUML是開源的,有一個相對比較成熟的網(wǎng)站,通過簡單的UML語言來實現(xiàn)想要的效果,有點極客范
  • PlantUML有比較詳細的各類語言的guide文檔
  • PlantUML做了很多的適配,比如常用的編譯器eclipse,IDEA intelliJ都有對應(yīng)的插件,同時還和MavenJQuery都做了集成,還提供了war包形式,可以在本地的JavaEE容器(比如Tomcat)中運行起來
  • PlantUML語言簡單直接易學,就好像Markdown語法一樣,簡單高效

3. UML語言介紹

簡而言之,UML語言是一種面向?qū)ο蟮哪P驼Z言,通過UML語言的組合來表達某些事物之間的邏輯關(guān)系。

詳細概念請參見https://www.w3cschool.cn/uml_tutorial/uml_tutorial-c1gf28pd.html

4. PlantUML語言參考文檔

5. PlantUML語言編寫環(huán)境

目前官方網(wǎng)站給出了好多種的環(huán)境搭建方式,下面著重介紹四種

  • 在線通過PlantUML語言繪制對應(yīng)的UML圖,plantUML官網(wǎng)提供了免費的在線編輯服務(wù),通過在左側(cè)輸入對應(yīng)的UML語言來生成對應(yīng)的UML圖,地址如下:online-site

    1553415664042.png

  • 通過本地的JavaEE容器啟動plantUML.war

    下載Java J2EE WAR File(plantuml.war),將其放在本地的Tomcatwebapps目錄下,啟動后然后訪問http://localost:8080/plantuml,就可以看到如下圖所示畫面,左側(cè)編寫PlantUML語言的代碼,下面是效果圖
    plantuml.war下載地址:https://sourceforge.net/projects/plantuml/files/plantuml.war/download

    tomcat-plantuml.war.png

  • 使用IDEA intelliJ插件繪制

    使用之前請安裝PlantUML integration插件,然后就可以愉快的書寫UML語言,右側(cè)會生成對應(yīng)的預覽圖片,可以復制或保存生成的圖片到指定的目錄

1553416433082.png
  • 使用SpringBoot集成plantUML
    pom.xml中添加如下依賴,更多關(guān)于PlantUML api的使用請參見具體的官方文檔。參考資料2是一個簡單的demo。
<dependency>
        <groupId>net.sourceforge.plantuml</groupId>
        <artifactId>plantuml</artifactId>
        <version>RELEASE</version>
</dependency>

5. 下面是引用標準庫生成的一個邏輯圖

  • PlantUML語言如下
@startuml
!include <cloudinsight/tomcat>
!include <cloudinsight/kafka>
!include <cloudinsight/java>
!include <cloudinsight/cassandra>
title Cloudinsight sprites example
skinparam monochrome true
rectangle "<$tomcat>\nwebapp" as webapp
queue "<$kafka>" as kafka
rectangle "<$java>\ndaemon" as daemon
database "<$cassandra>" as cassandra
webapp -> kafka
kafka -> daemon
daemon --> cassandra
@enduml
  • 效果圖


    sequence.png

6. 參考資料

  1. PlantUML官網(wǎng)
  2. SpringBoot+PlantUML
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容