Drawing diagrams with PlantUML is fun and easy. We use text to describe the diagram and the we get a graphical representation. Especially in combination with Asciidoctor with PlantUML integration we have a winning combination to write technical documentation. Because our text is transformed into a graphical format like PNG we don't have much influence on the layout. There are options to indicate positions of elements, but we can also use the length of lines to influence the position of elements.
In the following sample we have a PlantUML diagram description with standard lines. We use two hyphens (--
) to define a line:
@startuml actor User [Third party application] as ThirdPartyApp [PostgreSQL database] <<Database>> as PostgresDB [Mail server] <<Mail server>> as Mail package "Spring Boot Application" { [Controllers] <<Spring REST controllers>> [DataStoreService] <<Spring service>> [Repository] <<Spring repository>> } User --> Controllers ThirdPartyApp --> Controllers Controllers --> DataStoreService DataStoreService --> Repository DataStoreService --> Mail Repository --> PostgresDB @enduml
We create a diagram and we get the following graphical diagram:
The diagram looks fine, but we want to have our mail server at the same level as the PostgreSQL database element. We simply add an extra hyphen (-
) to the connection line between DataStoreService
and Mail
:
@startuml actor User [Third party application] as ThirdPartyApp [PostgreSQL database] <<Database>> as PostgresDB [Mail server] <<Mail server>> as Mail package "Spring Boot Application" { [Controllers] <<Spring REST controllers>> [DataStoreService] <<Spring service>> [Repository] <<Spring repository>> } User --> Controllers ThirdPartyApp --> Controllers Controllers --> DataStoreService DataStoreService --> Repository /'Add extra hyphen (-) to put Mail add the same level as PostgresDB '/ DataStoreService ---> Mail Repository --> PostgresDB @enduml
We regenerate our diagram and we get the following result:
Written with PlantUML 8048.