Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
235f2c89
C
Coca
项目概览
Phodal
/
Coca
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coca
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
235f2c89
编写于
12月 28, 2019
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: add arch demo
上级
4080cd7d
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
781 addition
and
2 deletion
+781
-2
README.md
README.md
+15
-0
cmd/arch.go
cmd/arch.go
+0
-2
core/domain/arch/arch_app.go
core/domain/arch/arch_app.go
+4
-0
docs/sample/arch.svg
docs/sample/arch.svg
+762
-0
未找到文件。
README.md
浏览文件 @
235f2c89
...
...
@@ -70,12 +70,27 @@ Available Commands:
```
1.
Run
`coca analysis`
2.
Run Command
### Analysis
```
coca analysis
```
### Arch
```
coca arch
```
Examples Results:
![
Architecture demo
](
docs/sample/arch.svg
)
Repo from:
[
https://github.com/howiehu/ddd-architecture-samples
](
https://github.com/howiehu/ddd-architecture-samples
)
### Find Bad Smells
```
bash
...
...
cmd/arch.go
浏览文件 @
235f2c89
...
...
@@ -30,8 +30,6 @@ var archCmd = &cobra.Command{
archApp
:=
arch
.
NewArchApp
()
dotContent
:=
archApp
.
Analysis
(
parsedDeps
,
identifiersMap
)
fmt
.
Println
(
dotContent
)
ignores
:=
strings
.
Split
(
""
,
","
)
var
nodeFilter
=
func
(
key
string
)
bool
{
for
_
,
f
:=
range
ignores
{
...
...
core/domain/arch/arch_app.go
浏览文件 @
235f2c89
...
...
@@ -66,6 +66,10 @@ func addCallInMethod(clz models.JClassNode, identifiersMap map[string]models.JId
// TODO: add implements, extends support
for
_
,
call
:=
range
method
.
MethodCalls
{
dst
:=
call
.
Package
+
"."
+
call
.
Class
if
src
==
dst
{
continue
}
if
_
,
ok
:=
identifiersMap
[
dst
];
ok
{
relation
:=
&
tequila
.
Relation
{
From
:
src
,
...
...
docs/sample/arch.svg
0 → 100644
浏览文件 @
235f2c89
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: G Pages: 1 -->
<svg
width=
"2874pt"
height=
"580pt"
viewBox=
"0.00 0.00 2874.00 580.00"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<g
id=
"graph0"
class=
"graph"
transform=
"scale(1 1) rotate(0) translate(4 576)"
>
<title>
G
</title>
<polygon
fill=
"white"
stroke=
"transparent"
points=
"-4,4 -4,-576 2870,-576 2870,4 -4,4"
/>
<g
id=
"clust1"
class=
"cluster"
>
<title>
cluster1
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1268,-326 1268,-400 1928,-400 1928,-326 1268,-326"
/>
<text
text-anchor=
"middle"
x=
"1598"
y=
"-384.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.adapters.inbound.rest.resources
</text>
</g>
<g
id=
"clust2"
class=
"cluster"
>
<title>
cluster10
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2129,-162 2129,-236 2420,-236 2420,-162 2129,-162"
/>
<text
text-anchor=
"middle"
x=
"2274.5"
y=
"-220.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.adapters.inbound.rest.handlers
</text>
</g>
<g
id=
"clust3"
class=
"cluster"
>
<title>
cluster11
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"8,-490 8,-564 282,-564 282,-490 8,-490"
/>
<text
text-anchor=
"middle"
x=
"145"
y=
"-548.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.adapters.outbound.gateway
</text>
</g>
<g
id=
"clust4"
class=
"cluster"
>
<title>
cluster12
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1774,-244 1774,-318 2017,-318 2017,-244 1774,-244"
/>
<text
text-anchor=
"middle"
x=
"1895.5"
y=
"-302.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.domain.core.common
</text>
</g>
<g
id=
"clust5"
class=
"cluster"
>
<title>
cluster13
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"802,-408 802,-482 1279,-482 1279,-408 802,-408"
/>
<text
text-anchor=
"middle"
x=
"1040.5"
y=
"-466.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.application.usecases
</text>
</g>
<g
id=
"clust6"
class=
"cluster"
>
<title>
cluster14
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1889,-490 1889,-564 2129,-564 2129,-490 1889,-490"
/>
<text
text-anchor=
"middle"
x=
"2009"
y=
"-548.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.adapters.inbound.rest
</text>
</g>
<g
id=
"clust7"
class=
"cluster"
>
<title>
cluster15
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2034,-244 2034,-482 2352,-482 2352,-244 2034,-244"
/>
<text
text-anchor=
"middle"
x=
"2193"
y=
"-466.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.adapters.outbound.persistence.blog
</text>
</g>
<g
id=
"clust8"
class=
"cluster"
>
<title>
cluster16
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2137,-490 2137,-564 2349,-564 2349,-490 2137,-490"
/>
<text
text-anchor=
"middle"
x=
"2243"
y=
"-548.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo
</text>
</g>
<g
id=
"clust9"
class=
"cluster"
>
<title>
cluster17
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"43,-408 43,-482 276,-482 276,-408 43,-408"
/>
<text
text-anchor=
"middle"
x=
"159.5"
y=
"-466.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.application.gateway
</text>
</g>
<g
id=
"clust10"
class=
"cluster"
>
<title>
cluster18
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"358,-162 358,-318 666,-318 666,-162 358,-162"
/>
<text
text-anchor=
"middle"
x=
"512"
y=
"-302.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.domain.contexts.usercontext.user
</text>
</g>
<g
id=
"clust11"
class=
"cluster"
>
<title>
cluster19
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"706,-326 706,-400 941,-400 941,-326 706,-326"
/>
<text
text-anchor=
"middle"
x=
"823.5"
y=
"-384.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.application.concepts
</text>
</g>
<g
id=
"clust12"
class=
"cluster"
>
<title>
cluster2
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"796,-8 796,-154 1481,-154 1481,-8 796,-8"
/>
<text
text-anchor=
"middle"
x=
"1138.5"
y=
"-138.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.domain.core.concepts
</text>
</g>
<g
id=
"clust13"
class=
"cluster"
>
<title>
cluster3
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1355,-408 1355,-564 1881,-564 1881,-408 1355,-408"
/>
<text
text-anchor=
"middle"
x=
"1618"
y=
"-548.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.adapters.inbound.rest.resources.blog
</text>
</g>
<g
id=
"clust14"
class=
"cluster"
>
<title>
cluster4
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2357,-490 2357,-564 2646,-564 2646,-490 2357,-490"
/>
<text
text-anchor=
"middle"
x=
"2501.5"
y=
"-548.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.adapters.outbound.persistence
</text>
</g>
<g
id=
"clust15"
class=
"cluster"
>
<title>
cluster5
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"949,-162 949,-400 1260,-400 1260,-162 949,-162"
/>
<text
text-anchor=
"middle"
x=
"1104.5"
y=
"-384.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.domain.contexts.blogcontext.blog
</text>
</g>
<g
id=
"clust16"
class=
"cluster"
>
<title>
cluster6
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"290,-408 290,-564 794,-564 794,-408 290,-408"
/>
<text
text-anchor=
"middle"
x=
"542"
y=
"-548.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.adapters.inbound.rest.resources.publishedblog
</text>
</g>
<g
id=
"clust17"
class=
"cluster"
>
<title>
cluster7
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2654,-490 2654,-564 2858,-564 2858,-490 2654,-490"
/>
<text
text-anchor=
"middle"
x=
"2756"
y=
"-548.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.application.dto
</text>
</g>
<g
id=
"clust18"
class=
"cluster"
>
<title>
cluster8
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1268,-162 1268,-236 1642,-236 1642,-162 1268,-162"
/>
<text
text-anchor=
"middle"
x=
"1455"
y=
"-220.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.domain.contexts.blogcontext.blog.exceptions
</text>
</g>
<g
id=
"clust19"
class=
"cluster"
>
<title>
cluster9
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1775,-80 1775,-236 2121,-236 2121,-80 1775,-80"
/>
<text
text-anchor=
"middle"
x=
"1948"
y=
"-220.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
study.huhao.demo.domain.core.common.excpetions
</text>
</g>
<!-- node35 -->
<g
id=
"node1"
class=
"node"
>
<title>
node35
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"274.41,-534 147.59,-534 147.59,-498 274.41,-498 274.41,-534"
/>
<text
text-anchor=
"middle"
x=
"211"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
DemoGatewayImpl
</text>
</g>
<!-- node46 -->
<g
id=
"node2"
class=
"node"
>
<title>
node46
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"263.97,-452 164.03,-452 164.03,-416 263.97,-416 263.97,-452"
/>
<text
text-anchor=
"middle"
x=
"214"
y=
"-429.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
DemoGateway
</text>
</g>
<!-- node35->node46 -->
<g
id=
"edge1"
class=
"edge"
>
<title>
node35
->
node46
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M211.65,-497.64C212.04,-487.3 212.54,-473.94 212.98,-462.22"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"216.48,-462.17 213.36,-452.05 209.49,-461.91 216.48,-462.17"
/>
</g>
<!-- node51 -->
<g
id=
"node39"
class=
"node"
>
<title>
node51
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"781.75,-370 716.25,-370 716.25,-334 781.75,-334 781.75,-370"
/>
<text
text-anchor=
"middle"
x=
"749"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
Gateway
</text>
</g>
<!-- node46->node51 -->
<g
id=
"edge48"
class=
"edge"
>
<title>
node46
->
node51
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M258.5,-415.88C267.5,-412.89 276.97,-410.08 286,-408 438.05,-373 623.62,-359.53 706.03,-355"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"706.23,-358.5 716.03,-354.47 705.85,-351.51 706.23,-358.5"
/>
</g>
<!-- node30 -->
<g
id=
"node3"
class=
"node"
>
<title>
node30
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1542,-206 1366,-206 1366,-170 1542,-170 1542,-206"
/>
<text
text-anchor=
"middle"
x=
"1454"
y=
"-183.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
NoNeedToPublishException
</text>
</g>
<!-- node32 -->
<g
id=
"node4"
class=
"node"
>
<title>
node32
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2002.86,-124 1885.14,-124 1885.14,-88 2002.86,-88 2002.86,-124"
/>
<text
text-anchor=
"middle"
x=
"1944"
y=
"-101.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
DomainException
</text>
</g>
<!-- node30->node32 -->
<g
id=
"edge2"
class=
"edge"
>
<title>
node30
->
node32
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1542.17,-172.61C1637.58,-157.03 1787.75,-132.51 1874.95,-118.27"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1875.7,-121.7 1885.01,-116.63 1874.58,-114.79 1875.7,-121.7"
/>
</g>
<!-- node48 -->
<g
id=
"node5"
class=
"node"
>
<title>
node48
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"585.42,-288 500.58,-288 500.58,-252 585.42,-252 585.42,-288"
/>
<text
text-anchor=
"middle"
x=
"543"
y=
"-265.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
UserService
</text>
</g>
<!-- node47 -->
<g
id=
"node6"
class=
"node"
>
<title>
node47
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"625.88,-206 522.12,-206 522.12,-170 625.88,-170 625.88,-206"
/>
<text
text-anchor=
"middle"
x=
"574"
y=
"-183.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
UserRepository
</text>
</g>
<!-- node48->node47 -->
<g
id=
"edge3"
class=
"edge"
>
<title>
node48
->
node47
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M549.73,-251.64C553.82,-241.09 559.12,-227.39 563.73,-215.51"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"567.04,-216.64 567.39,-206.05 560.52,-214.11 567.04,-216.64"
/>
</g>
<!-- node8 -->
<g
id=
"node37"
class=
"node"
>
<title>
node8
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1252.98,-124 1195.02,-124 1195.02,-88 1252.98,-88 1252.98,-124"
/>
<text
text-anchor=
"middle"
x=
"1224"
y=
"-101.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
Service
</text>
</g>
<!-- node48->node8 -->
<g
id=
"edge49"
class=
"edge"
>
<title>
node48
->
node8
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M574.56,-251.94C580.87,-248.98 587.55,-246.17 594,-244 611.6,-238.09 616.86,-239.93 635,-236 773.43,-205.99 804.62,-180.89 945,-162 971.55,-158.43 1162.02,-165.94 1186,-154 1195.48,-149.28 1203.39,-140.97 1209.5,-132.65"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1212.56,-134.37 1215.2,-124.11 1206.74,-130.48 1212.56,-134.37"
/>
</g>
<!-- node9 -->
<g
id=
"node15"
class=
"node"
>
<title>
node9
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1057.94,-124 980.06,-124 980.06,-88 1057.94,-88 1057.94,-124"
/>
<text
text-anchor=
"middle"
x=
"1019"
y=
"-101.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
Repository
</text>
</g>
<!-- node47->node9 -->
<g
id=
"edge26"
class=
"edge"
>
<title>
node47
->
node9
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M625.91,-175.39C650.63,-170.35 680.71,-164.94 708,-162 737.07,-158.87 944.1,-165.46 971,-154 982.17,-149.24 992.2,-140.58 1000.16,-131.97"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1002.98,-134.06 1006.87,-124.2 997.68,-129.49 1002.98,-134.06"
/>
</g>
<!-- node28 -->
<g
id=
"node7"
class=
"node"
>
<title>
node28
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"709.96,-452 590.04,-452 590.04,-416 709.96,-416 709.96,-452"
/>
<text
text-anchor=
"middle"
x=
"650"
y=
"-429.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
PublishedBlogDto
</text>
</g>
<!-- node4 -->
<g
id=
"node8"
class=
"node"
>
<title>
node4
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1820.16,-370 1729.84,-370 1729.84,-334 1820.16,-334 1820.16,-370"
/>
<text
text-anchor=
"middle"
x=
"1775"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
ResponseDto
</text>
</g>
<!-- node28->node4 -->
<g
id=
"edge4"
class=
"edge"
>
<title>
node28
->
node4
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M709.85,-420.67C736.68,-415.72 768.8,-410.58 798,-408 823.54,-405.75 1697.03,-409.09 1721,-400 1733.35,-395.32 1744.75,-386.43 1753.86,-377.63"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1756.48,-379.96 1760.95,-370.35 1751.46,-375.07 1756.48,-379.96"
/>
</g>
<!-- node21 -->
<g
id=
"node10"
class=
"node"
>
<title>
node21
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1252,-288 1198,-288 1198,-252 1252,-252 1252,-288"
/>
<text
text-anchor=
"middle"
x=
"1225"
y=
"-265.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
Blog
</text>
</g>
<!-- node28->node21 -->
<g
id=
"edge12"
class=
"edge"
>
<title>
node28
->
node21
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M657.76,-415.86C671.23,-386.3 697.87,-328.64 702,-326 721.62,-313.46 1098.29,-323.12 1121,-318 1144.59,-312.68 1169.32,-301.75 1188.74,-291.77"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1190.62,-294.74 1197.83,-286.98 1187.35,-288.55 1190.62,-294.74"
/>
</g>
<!-- node24 -->
<g
id=
"node25"
class=
"node"
>
<title>
node24
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1252.46,-206 1153.54,-206 1153.54,-170 1252.46,-170 1252.46,-206"
/>
<text
text-anchor=
"middle"
x=
"1203"
y=
"-183.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
PublishedBlog
</text>
</g>
<!-- node28->node24 -->
<g
id=
"edge45"
class=
"edge"
>
<title>
node28
->
node24
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M646.89,-415.8C643.72,-392.46 641.99,-350.8 664,-326 727.59,-254.36 1016.41,-211.47 1143.12,-195.8"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1143.91,-199.23 1153.41,-194.55 1143.06,-192.28 1143.91,-199.23"
/>
</g>
<!-- node11 -->
<g
id=
"node36"
class=
"node"
>
<title>
node11
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1473.42,-124 1374.58,-124 1374.58,-88 1473.42,-88 1473.42,-124"
/>
<text
text-anchor=
"middle"
x=
"1424"
y=
"-101.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
HumbleObject
</text>
</g>
<!-- node4->node11 -->
<g
id=
"edge41"
class=
"edge"
>
<title>
node4
->
node11
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1755.01,-333.95C1750.05,-329.12 1745.01,-323.63 1741,-318 1696.58,-255.65 1727.65,-209.98 1668,-162 1640.04,-139.51 1546.45,-123.13 1483.65,-114.35"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1483.85,-110.84 1473.47,-112.95 1482.9,-117.78 1483.85,-110.84"
/>
</g>
<!-- node42 -->
<g
id=
"node9"
class=
"node"
>
<title>
node42
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2255.62,-370 2194.38,-370 2194.38,-334 2255.62,-334 2255.62,-370"
/>
<text
text-anchor=
"middle"
x=
"2225"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BlogPO
</text>
</g>
<!-- node42->node21 -->
<g
id=
"edge5"
class=
"edge"
>
<title>
node42
->
node21
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M2202.33,-333.93C2196.91,-330.7 2190.97,-327.77 2185,-326 2162.9,-319.43 1793.03,-319.21 1770,-318 1578.62,-307.91 1350.31,-284.52 1262.21,-275.07"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1262.49,-271.58 1252.18,-273.99 1261.74,-278.54 1262.49,-271.58"
/>
</g>
<!-- node43 -->
<g
id=
"node24"
class=
"node"
>
<title>
node43
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2216.35,-288 2099.65,-288 2099.65,-252 2216.35,-252 2216.35,-288"
/>
<text
text-anchor=
"middle"
x=
"2158"
y=
"-265.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
PublishedBlogPO
</text>
</g>
<!-- node42->node43 -->
<g
id=
"edge38"
class=
"edge"
>
<title>
node42
->
node43
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M2210.46,-333.64C2201.18,-322.56 2189,-308.02 2178.72,-295.74"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"2181.38,-293.47 2172.28,-288.05 2176.02,-297.96 2181.38,-293.47"
/>
</g>
<!-- node21->node30 -->
<g
id=
"edge21"
class=
"edge"
>
<title>
node21
->
node30
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1252.17,-259.51C1287.34,-247.22 1349.59,-225.48 1395.68,-209.37"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1396.97,-212.63 1405.26,-206.03 1394.66,-206.02 1396.97,-212.63"
/>
</g>
<!-- node21->node24 -->
<g
id=
"edge28"
class=
"edge"
>
<title>
node21
->
node24
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1220.23,-251.64C1217.35,-241.19 1213.63,-227.67 1210.39,-215.86"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1213.72,-214.76 1207.69,-206.05 1206.97,-216.62 1213.72,-214.76"
/>
</g>
<!-- node13 -->
<g
id=
"node32"
class=
"node"
>
<title>
node13
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1176.53,-124 1075.47,-124 1075.47,-88 1176.53,-88 1176.53,-124"
/>
<text
text-anchor=
"middle"
x=
"1126"
y=
"-101.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
AggregateRoot
</text>
</g>
<!-- node21->node13 -->
<g
id=
"edge58"
class=
"edge"
>
<title>
node21
->
node13
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1197.81,-264.85C1180.01,-260.65 1157.76,-252.34 1145,-236 1122.27,-206.89 1120.8,-162.49 1122.72,-134.11"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1126.21,-134.35 1123.58,-124.08 1119.23,-133.74 1126.21,-134.35"
/>
</g>
<!-- node41 -->
<g
id=
"node11"
class=
"node"
>
<title>
node41
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2190.61,-452 2059.39,-452 2059.39,-416 2190.61,-416 2190.61,-452"
/>
<text
text-anchor=
"middle"
x=
"2125"
y=
"-429.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BlogRepositoryImpl
</text>
</g>
<!-- node41->node42 -->
<g
id=
"edge56"
class=
"edge"
>
<title>
node41
->
node42
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M2161.26,-415.82C2169.44,-411.21 2177.81,-405.86 2185,-400 2192.68,-393.73 2200.04,-385.86 2206.3,-378.35"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"2209.11,-380.44 2212.62,-370.45 2203.64,-376.07 2209.11,-380.44"
/>
</g>
<!-- node41->node21 -->
<g
id=
"edge36"
class=
"edge"
>
<title>
node41
->
node21
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M2098.4,-415.75C2092.28,-411.07 2086.08,-405.71 2081,-400 2055.72,-371.57 2070.68,-345.46 2038,-326 2025.2,-318.38 1784.87,-318.86 1770,-318 1578.68,-306.9 1350.34,-284.1 1262.22,-274.94"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1262.49,-271.45 1252.18,-273.89 1261.76,-278.41 1262.49,-271.45"
/>
</g>
<!-- node22 -->
<g
id=
"node12"
class=
"node"
>
<title>
node22
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1112.17,-288 1007.83,-288 1007.83,-252 1112.17,-252 1112.17,-288"
/>
<text
text-anchor=
"middle"
x=
"1060"
y=
"-265.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BlogRepository
</text>
</g>
<!-- node41->node22 -->
<g
id=
"edge6"
class=
"edge"
>
<title>
node41
->
node22
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M2073.47,-415.86C2061.57,-411.25 2049.14,-405.89 2038,-400 1987.2,-373.16 1986.71,-343.53 1932,-326 1892.69,-313.4 1229.61,-325.39 1189,-318 1160.53,-312.82 1130.06,-301.98 1105.88,-292.02"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1107.18,-288.77 1096.61,-288.12 1104.46,-295.22 1107.18,-288.77"
/>
</g>
<!-- node44 -->
<g
id=
"node38"
class=
"node"
>
<title>
node44
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2176.27,-370 2089.73,-370 2089.73,-334 2176.27,-334 2176.27,-370"
/>
<text
text-anchor=
"middle"
x=
"2133"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BlogMapper
</text>
</g>
<!-- node41->node44 -->
<g
id=
"edge46"
class=
"edge"
>
<title>
node41
->
node44
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M2126.74,-415.64C2127.77,-405.3 2129.11,-391.94 2130.28,-380.22"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"2133.78,-380.35 2131.29,-370.05 2126.82,-379.65 2133.78,-380.35"
/>
</g>
<!-- node22->node9 -->
<g
id=
"edge8"
class=
"edge"
>
<title>
node22
->
node9
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1055.69,-251.97C1048.6,-223.97 1034.43,-167.96 1025.92,-134.35"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1029.22,-133.13 1023.38,-124.29 1022.44,-134.84 1029.22,-133.13"
/>
</g>
<!-- node39 -->
<g
id=
"node13"
class=
"node"
>
<title>
node39
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"992.43,-452 809.57,-452 809.57,-416 992.43,-416 992.43,-452"
/>
<text
text-anchor=
"middle"
x=
"901"
y=
"-429.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
QueryPublishedBlogUseCase
</text>
</g>
<!-- node23 -->
<g
id=
"node14"
class=
"node"
>
<title>
node23
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1115.71,-370 1030.29,-370 1030.29,-334 1115.71,-334 1115.71,-370"
/>
<text
text-anchor=
"middle"
x=
"1073"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BlogService
</text>
</g>
<!-- node39->node23 -->
<g
id=
"edge7"
class=
"edge"
>
<title>
node39
->
node23
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M937.9,-415.84C963.97,-403.71 999.1,-387.37 1027,-374.39"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1028.57,-377.52 1036.16,-370.13 1025.62,-371.18 1028.57,-377.52"
/>
</g>
<!-- node50 -->
<g
id=
"node29"
class=
"node"
>
<title>
node50
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"933.49,-370 868.51,-370 868.51,-334 933.49,-334 933.49,-370"
/>
<text
text-anchor=
"middle"
x=
"901"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
UseCase
</text>
</g>
<!-- node39->node50 -->
<g
id=
"edge24"
class=
"edge"
>
<title>
node39
->
node50
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M901,-415.64C901,-405.3 901,-391.94 901,-380.22"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"904.5,-380.05 901,-370.05 897.5,-380.05 904.5,-380.05"
/>
</g>
<!-- node23->node21 -->
<g
id=
"edge47"
class=
"edge"
>
<title>
node23
->
node21
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1105.61,-333.84C1130,-321 1163.37,-303.44 1188.63,-290.14"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1190.31,-293.21 1197.53,-285.46 1187.05,-287.02 1190.31,-293.21"
/>
</g>
<!-- node23->node22 -->
<g
id=
"edge29"
class=
"edge"
>
<title>
node23
->
node22
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1070.18,-333.64C1068.5,-323.3 1066.33,-309.94 1064.42,-298.22"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1067.83,-297.36 1062.77,-288.05 1060.92,-298.48 1067.83,-297.36"
/>
</g>
<!-- node31 -->
<g
id=
"node30"
class=
"node"
>
<title>
node31
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2112.77,-206 1949.23,-206 1949.23,-170 2112.77,-170 2112.77,-206"
/>
<text
text-anchor=
"middle"
x=
"2031"
y=
"-183.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
EntityNotFoundException
</text>
</g>
<!-- node23->node31 -->
<g
id=
"edge22"
class=
"edge"
>
<title>
node23
->
node31
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1102.98,-333.89C1110,-330.66 1117.59,-327.75 1125,-326 1182.32,-312.48 1598.62,-335.04 1655,-318 1713.18,-300.42 1712.11,-262.51 1770,-244 1806.02,-232.48 1903.47,-245.79 1940,-236 1959.71,-230.72 1980.03,-220.73 1996.46,-211.31"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1998.33,-214.27 2005.16,-206.17 1994.77,-208.25 1998.33,-214.27"
/>
</g>
<!-- node23->node8 -->
<g
id=
"edge42"
class=
"edge"
>
<title>
node23
->
node8
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1103.6,-333.88C1110.45,-330.73 1117.82,-327.86 1125,-326 1183.61,-310.82 1201,-326.11 1261,-318 1434.37,-294.57 1535.93,-371.98 1646,-236 1666.69,-210.44 1669.01,-185.5 1646,-162 1631.07,-146.76 1281.16,-163.39 1262,-154 1252.49,-149.34 1244.57,-141.04 1238.47,-132.71"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1241.23,-130.54 1232.77,-124.16 1235.4,-134.42 1241.23,-130.54"
/>
</g>
<!-- node15 -->
<g
id=
"node16"
class=
"node"
>
<title>
node15
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1832.23,-452 1767.77,-452 1767.77,-416 1832.23,-416 1832.23,-452"
/>
<text
text-anchor=
"middle"
x=
"1800"
y=
"-429.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BlogDto
</text>
</g>
<!-- node15->node4 -->
<g
id=
"edge43"
class=
"edge"
>
<title>
node15
->
node4
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1794.58,-415.64C1791.31,-405.19 1787.08,-391.67 1783.39,-379.86"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1786.65,-378.55 1780.33,-370.05 1779.97,-380.64 1786.65,-378.55"
/>
</g>
<!-- node15->node21 -->
<g
id=
"edge9"
class=
"edge"
>
<title>
node15
->
node21
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1832.37,-429.44C1867.39,-424.85 1919.86,-415.55 1932,-400 1952.24,-374.08 1954.68,-349.82 1932,-326 1925.79,-319.47 1778.99,-318.61 1770,-318 1578.79,-305.04 1350.39,-283.31 1262.24,-274.69"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1262.49,-271.19 1252.19,-273.7 1261.8,-278.16 1262.49,-271.19"
/>
</g>
<!-- node17 -->
<g
id=
"node17"
class=
"node"
>
<title>
node17
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1480.6,-534 1363.4,-534 1363.4,-498 1480.6,-498 1480.6,-534"
/>
<text
text-anchor=
"middle"
x=
"1422"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BlogSubResource
</text>
</g>
<!-- node17->node15 -->
<g
id=
"edge19"
class=
"edge"
>
<title>
node17
->
node15
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1464.8,-497.97C1473.07,-495.04 1481.74,-492.23 1490,-490 1583.83,-464.64 1696.88,-447.97 1757.18,-440.16"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1757.98,-443.59 1767.45,-438.85 1757.09,-436.64 1757.98,-443.59"
/>
</g>
<!-- node37 -->
<g
id=
"node18"
class=
"node"
>
<title>
node37
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1125.55,-452 1010.45,-452 1010.45,-416 1125.55,-416 1125.55,-452"
/>
<text
text-anchor=
"middle"
x=
"1068"
y=
"-429.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
EditBlogUseCase
</text>
</g>
<!-- node17->node37 -->
<g
id=
"edge10"
class=
"edge"
>
<title>
node17
->
node37
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1363.31,-511.74C1291.54,-507.16 1174.58,-497.58 1134,-482 1119.73,-476.52 1105.69,-467.23 1094.25,-458.35"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1096.39,-455.58 1086.41,-452.01 1091.99,-461.02 1096.39,-455.58"
/>
</g>
<!-- node38 -->
<g
id=
"node28"
class=
"node"
>
<title>
node38
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1270.7,-452 1143.3,-452 1143.3,-416 1270.7,-416 1270.7,-452"
/>
<text
text-anchor=
"middle"
x=
"1207"
y=
"-429.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
QueryBlogUseCase
</text>
</g>
<!-- node17->node38 -->
<g
id=
"edge35"
class=
"edge"
>
<title>
node17
->
node38
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1376.14,-497.94C1342.89,-485.56 1297.74,-468.77 1262.46,-455.64"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1263.38,-452.24 1252.79,-452.04 1260.94,-458.81 1263.38,-452.24"
/>
</g>
<!-- node37->node23 -->
<g
id=
"edge17"
class=
"edge"
>
<title>
node37
->
node23
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1069.08,-415.64C1069.73,-405.3 1070.57,-391.94 1071.3,-380.22"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1074.8,-380.25 1071.93,-370.05 1067.82,-379.81 1074.8,-380.25"
/>
</g>
<!-- node37->node50 -->
<g
id=
"edge27"
class=
"edge"
>
<title>
node37
->
node50
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1026.63,-415.98C1018.25,-412.99 1009.42,-410.15 1001,-408 976.64,-401.79 967.3,-411.61 945,-400 934.93,-394.76 925.93,-386.28 918.73,-377.96"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"921.41,-375.71 912.4,-370.14 915.97,-380.11 921.41,-375.71"
/>
</g>
<!-- node18 -->
<g
id=
"node19"
class=
"node"
>
<title>
node18
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1623.36,-534 1498.64,-534 1498.64,-498 1623.36,-498 1623.36,-534"
/>
<text
text-anchor=
"middle"
x=
"1561"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
CreateBlogRequest
</text>
</g>
<!-- node3 -->
<g
id=
"node20"
class=
"node"
>
<title>
node3
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1920.1,-370 1837.9,-370 1837.9,-334 1920.1,-334 1920.1,-370"
/>
<text
text-anchor=
"middle"
x=
"1879"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
RequestDto
</text>
</g>
<!-- node18->node3 -->
<g
id=
"edge11"
class=
"edge"
>
<title>
node18
->
node3
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1577.21,-497.83C1602.01,-472.87 1652.08,-427.42 1705,-408 1756.84,-388.97 1778.34,-421.99 1829,-400 1840.5,-395.01 1850.99,-386.19 1859.36,-377.52"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1862.01,-379.81 1866.14,-370.05 1856.83,-375.1 1862.01,-379.81"
/>
</g>
<!-- node3->node11 -->
<g
id=
"edge40"
class=
"edge"
>
<title>
node3
->
node11
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1848.72,-333.88C1842.36,-330.86 1835.58,-328.03 1829,-326 1803.71,-318.2 1790.9,-334.23 1770,-318 1741.97,-296.24 1753.97,-276.62 1740,-244 1724.26,-207.24 1734.32,-186.85 1703,-162 1669.73,-135.6 1555.18,-119.85 1483.61,-112.35"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1483.68,-108.84 1473.38,-111.3 1482.97,-115.8 1483.68,-108.84"
/>
</g>
<!-- node25 -->
<g
id=
"node21"
class=
"node"
>
<title>
node25
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"470.33,-534 297.67,-534 297.67,-498 470.33,-498 470.33,-534"
/>
<text
text-anchor=
"middle"
x=
"384"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
PublishedBlogSubResource
</text>
</g>
<!-- node25->node28 -->
<g
id=
"edge37"
class=
"edge"
>
<title>
node25
->
node28
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M440.74,-497.94C482.58,-485.35 539.64,-468.19 583.61,-454.97"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"584.78,-458.27 593.35,-452.04 582.77,-451.57 584.78,-458.27"
/>
</g>
<!-- node25->node39 -->
<g
id=
"edge13"
class=
"edge"
>
<title>
node25
->
node39
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M440.07,-497.94C452.76,-494.73 466.25,-491.81 479,-490 549.21,-480.02 728.9,-497.93 798,-482 820.55,-476.8 844.14,-466.44 863.05,-456.77"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"864.71,-459.85 871.93,-452.1 861.45,-453.66 864.71,-459.85"
/>
</g>
<!-- node14 -->
<g
id=
"node22"
class=
"node"
>
<title>
node14
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1872.82,-534 1777.18,-534 1777.18,-498 1872.82,-498 1872.82,-534"
/>
<text
text-anchor=
"middle"
x=
"1825"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BlogResource
</text>
</g>
<!-- node14->node21 -->
<g
id=
"edge34"
class=
"edge"
>
<title>
node14
->
node21
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1851.81,-497.99C1903.62,-463.15 2007.85,-382.24 1954,-326 1946.92,-318.61 1780.21,-318.66 1770,-318 1578.76,-305.6 1350.37,-283.55 1262.23,-274.76"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1262.49,-271.27 1252.19,-273.76 1261.79,-278.23 1262.49,-271.27"
/>
</g>
<!-- node14->node15 -->
<g
id=
"edge33"
class=
"edge"
>
<title>
node14
->
node15
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1819.58,-497.64C1816.31,-487.19 1812.08,-473.67 1808.39,-461.86"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1811.65,-460.55 1805.33,-452.05 1804.97,-462.64 1811.65,-460.55"
/>
</g>
<!-- node14->node37 -->
<g
id=
"edge14"
class=
"edge"
>
<title>
node14
->
node37
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1791.99,-497.88C1784.31,-494.64 1776.03,-491.74 1768,-490 1733.57,-482.55 1167.48,-492.94 1134,-482 1119.26,-477.18 1104.97,-467.8 1093.49,-458.68"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1095.57,-455.86 1085.65,-452.15 1091.09,-461.24 1095.57,-455.86"
/>
</g>
<!-- node14->node38 -->
<g
id=
"edge44"
class=
"edge"
>
<title>
node14
->
node38
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1791.98,-497.92C1784.3,-494.68 1776.02,-491.76 1768,-490 1677.48,-470.11 1442.39,-497.44 1351,-482 1319.25,-476.64 1284.92,-465.65 1257.75,-455.65"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1258.67,-452.25 1248.08,-452.02 1256.21,-458.81 1258.67,-452.25"
/>
</g>
<!-- node26 -->
<g
id=
"node23"
class=
"node"
>
<title>
node26
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"638.05,-534 487.95,-534 487.95,-498 638.05,-498 638.05,-534"
/>
<text
text-anchor=
"middle"
x=
"563"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
PublishedBlogResource
</text>
</g>
<!-- node26->node28 -->
<g
id=
"edge51"
class=
"edge"
>
<title>
node26
->
node28
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M581.88,-497.64C594.16,-486.35 610.35,-471.46 623.86,-459.04"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"626.47,-461.4 631.46,-452.05 621.73,-456.24 626.47,-461.4"
/>
</g>
<!-- node26->node21 -->
<g
id=
"edge15"
class=
"edge"
>
<title>
node26
->
node21
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M612.23,-497.88C623.52,-494.65 635.57,-491.74 647,-490 664.47,-487.34 1270.59,-494.57 1283,-482 1306.11,-458.6 1301.19,-435.4 1283,-408 1277.93,-400.37 1270.13,-406.81 1264,-400 1238.46,-371.63 1229.63,-327.02 1226.59,-298.4"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1230.06,-297.93 1225.68,-288.28 1223.09,-298.55 1230.06,-297.93"
/>
</g>
<!-- node26->node37 -->
<g
id=
"edge55"
class=
"edge"
>
<title>
node26
->
node37
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M612.24,-497.97C623.53,-494.73 635.58,-491.8 647,-490 685.87,-483.89 963.62,-494.27 1001,-482 1015.88,-477.11 1030.37,-467.72 1042.05,-458.61"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1044.49,-461.13 1050.02,-452.09 1040.06,-455.71 1044.49,-461.13"
/>
</g>
<!-- node43->node24 -->
<g
id=
"edge16"
class=
"edge"
>
<title>
node43
->
node24
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M2099.64,-256.09C2075.44,-251.33 2046.99,-246.49 2021,-244 1979.13,-239.99 1303.74,-249.77 1264,-236 1250.31,-231.26 1237.28,-222.11 1226.8,-213.13"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1229.09,-210.48 1219.32,-206.38 1224.4,-215.67 1229.09,-210.48"
/>
</g>
<!-- node7 -->
<g
id=
"node33"
class=
"node"
>
<title>
node7
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1356.69,-124 1271.31,-124 1271.31,-88 1356.69,-88 1356.69,-124"
/>
<text
text-anchor=
"middle"
x=
"1314"
y=
"-101.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
ValueObject
</text>
</g>
<!-- node24->node7 -->
<g
id=
"edge30"
class=
"edge"
>
<title>
node24
->
node7
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1236.57,-169.94C1245.1,-165.14 1254.09,-159.68 1262,-154 1271.54,-147.16 1281.27,-138.8 1289.7,-131.03"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1292.15,-133.54 1297.03,-124.13 1287.35,-128.44 1292.15,-133.54"
/>
</g>
<!-- node20 -->
<g
id=
"node26"
class=
"node"
>
<title>
node20
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1219.99,-370 1134.01,-370 1134.01,-334 1219.99,-334 1219.99,-370"
/>
<text
text-anchor=
"middle"
x=
"1177"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BlogCriteria
</text>
</g>
<!-- node36 -->
<g
id=
"node27"
class=
"node"
>
<title>
node36
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1841.26,-288 1782.74,-288 1782.74,-252 1841.26,-252 1841.26,-288"
/>
<text
text-anchor=
"middle"
x=
"1812"
y=
"-265.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
Criteria
</text>
</g>
<!-- node20->node36 -->
<g
id=
"edge18"
class=
"edge"
>
<title>
node20
->
node36
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1220.32,-336.14C1234.11,-332.07 1249.55,-328.17 1264,-326 1358.29,-311.82 1599.5,-336.7 1693,-318 1720.83,-312.43 1750.51,-300.72 1773.28,-290.38"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1774.99,-293.44 1782.58,-286.05 1772.04,-287.09 1774.99,-293.44"
/>
</g>
<!-- node38->node22 -->
<g
id=
"edge52"
class=
"edge"
>
<title>
node38
->
node22
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1163.73,-415.91C1154.38,-412.81 1144.46,-409.94 1135,-408 1122.56,-405.45 1029.66,-409.29 1021,-400 998.57,-375.94 1011.02,-357.34 1021,-326 1024.39,-315.35 1030.68,-304.99 1037.23,-296.19"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1040.04,-298.28 1043.51,-288.27 1034.55,-293.94 1040.04,-298.28"
/>
</g>
<!-- node38->node23 -->
<g
id=
"edge23"
class=
"edge"
>
<title>
node38
->
node23
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1156.63,-415.99C1145.84,-411.46 1134.76,-406.1 1125,-400 1114.89,-393.68 1104.9,-385.31 1096.42,-377.39"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1098.72,-374.74 1089.09,-370.31 1093.85,-379.77 1098.72,-374.74"
/>
</g>
<!-- node38->node20 -->
<g
id=
"edge57"
class=
"edge"
>
<title>
node38
->
node20
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1200.49,-415.64C1196.53,-405.09 1191.4,-391.39 1186.94,-379.51"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1190.18,-378.18 1183.39,-370.05 1183.63,-380.64 1190.18,-378.18"
/>
</g>
<!-- node38->node50 -->
<g
id=
"edge20"
class=
"edge"
>
<title>
node38
->
node50
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1164.54,-415.96C1154.97,-412.77 1144.75,-409.86 1135,-408 1114.24,-404.05 964.2,-408.81 945,-400 934.53,-395.2 925.36,-386.64 918.14,-378.14"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"920.77,-375.82 911.83,-370.12 915.26,-380.14 920.77,-375.82"
/>
</g>
<!-- node31->node32 -->
<g
id=
"edge39"
class=
"edge"
>
<title>
node31
->
node32
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M2012.12,-169.64C1999.84,-158.35 1983.65,-143.46 1970.14,-131.04"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1972.27,-128.24 1962.54,-124.05 1967.53,-133.4 1972.27,-128.24"
/>
</g>
<!-- node49 -->
<g
id=
"node31"
class=
"node"
>
<title>
node49
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"657,-288 603,-288 603,-252 657,-252 657,-288"
/>
<text
text-anchor=
"middle"
x=
"630"
y=
"-265.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
User
</text>
</g>
<!-- node49->node13 -->
<g
id=
"edge25"
class=
"edge"
>
<title>
node49
->
node13
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M655.92,-251.83C660.81,-248.99 665.97,-246.24 671,-244 787.11,-192.26 819.9,-184.52 945,-162 971.74,-157.19 1041.66,-163.8 1067,-154 1080.11,-148.93 1092.59,-139.85 1102.68,-131.02"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1105.23,-133.42 1110.21,-124.06 1100.49,-128.27 1105.23,-133.42"
/>
</g>
<!-- node6 -->
<g
id=
"node35"
class=
"node"
>
<title>
node6
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1153,-52 1099,-52 1099,-16 1153,-16 1153,-52"
/>
<text
text-anchor=
"middle"
x=
"1126"
y=
"-29.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
Entity
</text>
</g>
<!-- node13->node6 -->
<g
id=
"edge32"
class=
"edge"
>
<title>
node13
->
node6
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1126,-87.7C1126,-79.98 1126,-70.71 1126,-62.11"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1129.5,-62.1 1126,-52.1 1122.5,-62.1 1129.5,-62.1"
/>
</g>
<!-- node33 -->
<g
id=
"node34"
class=
"node"
>
<title>
node33
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1931.47,-206 1782.53,-206 1782.53,-170 1931.47,-170 1931.47,-206"
/>
<text
text-anchor=
"middle"
x=
"1857"
y=
"-183.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
EntityExistedException
</text>
</g>
<!-- node33->node32 -->
<g
id=
"edge31"
class=
"edge"
>
<title>
node33
->
node32
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1875.88,-169.64C1888.16,-158.35 1904.35,-143.46 1917.86,-131.04"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1920.47,-133.4 1925.46,-124.05 1915.73,-128.24 1920.47,-133.4"
/>
</g>
<!-- node34 -->
<g
id=
"node40"
class=
"node"
>
<title>
node34
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2292.95,-206 2137.05,-206 2137.05,-170 2292.95,-170 2292.95,-206"
/>
<text
text-anchor=
"middle"
x=
"2215"
y=
"-183.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
GlobalExceptionHandler
</text>
</g>
<!-- node34->node32 -->
<g
id=
"edge50"
class=
"edge"
>
<title>
node34
->
node32
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M2157.2,-169.94C2114.47,-157.32 2056.19,-140.12 2011.35,-126.88"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"2012.3,-123.51 2001.72,-124.04 2010.31,-130.23 2012.3,-123.51"
/>
</g>
<!-- node27 -->
<g
id=
"node41"
class=
"node"
>
<title>
node27
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"786.35,-534 655.65,-534 655.65,-498 786.35,-498 786.35,-534"
/>
<text
text-anchor=
"middle"
x=
"721"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
PublishBlogRequest
</text>
</g>
<!-- node27->node3 -->
<g
id=
"edge53"
class=
"edge"
>
<title>
node27
->
node3
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M786.31,-514.98C931.1,-514.43 1269.73,-510.11 1313,-482 1344.01,-461.86 1319.61,-427.53 1351,-408 1373.55,-393.97 1804.39,-409.99 1829,-400 1840.61,-395.29 1851.12,-386.51 1859.48,-377.81"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1862.16,-380.06 1866.24,-370.28 1856.95,-375.38 1862.16,-380.06"
/>
</g>
<!-- node16 -->
<g
id=
"node42"
class=
"node"
>
<title>
node16
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1758.86,-534 1641.14,-534 1641.14,-498 1758.86,-498 1758.86,-534"
/>
<text
text-anchor=
"middle"
x=
"1700"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
SaveDraftRequest
</text>
</g>
<!-- node16->node3 -->
<g
id=
"edge54"
class=
"edge"
>
<title>
node16
->
node3
</title>
<path
fill=
"none"
stroke=
"black"
d=
"M1704.13,-497.93C1711,-473.52 1727.28,-429.25 1759,-408 1785.01,-390.57 1800.59,-413.17 1829,-400 1840.09,-394.86 1850.32,-386.29 1858.6,-377.87"
/>
<polygon
fill=
"black"
stroke=
"black"
points=
"1861.4,-379.99 1865.62,-370.27 1856.26,-375.24 1861.4,-379.99"
/>
</g>
<!-- node1 -->
<g
id=
"node43"
class=
"node"
>
<title>
node1
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1712.1,-370 1643.9,-370 1643.9,-334 1712.1,-334 1712.1,-370"
/>
<text
text-anchor=
"middle"
x=
"1678"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BasePath
</text>
</g>
<!-- node2 -->
<g
id=
"node44"
class=
"node"
>
<title>
node2
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1625.91,-370 1464.09,-370 1464.09,-334 1625.91,-334 1625.91,-370"
/>
<text
text-anchor=
"middle"
x=
"1545"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BaseRequestSpecification
</text>
</g>
<!-- node5 -->
<g
id=
"node45"
class=
"node"
>
<title>
node5
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"1445.97,-370 1276.03,-370 1276.03,-334 1445.97,-334 1445.97,-370"
/>
<text
text-anchor=
"middle"
x=
"1361"
y=
"-347.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
BaseResponseSpecification
</text>
</g>
<!-- node40 -->
<g
id=
"node46"
class=
"node"
>
<title>
node40
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2092.66,-534 1925.34,-534 1925.34,-498 2092.66,-498 2092.66,-534"
/>
<text
text-anchor=
"middle"
x=
"2009"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
MyBatisSpringTransaction
</text>
</g>
<!-- node45 -->
<g
id=
"node47"
class=
"node"
>
<title>
node45
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2340.6,-534 2145.4,-534 2145.4,-498 2340.6,-498 2340.6,-534"
/>
<text
text-anchor=
"middle"
x=
"2243"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
SpringWithMyBatisApplication
</text>
</g>
<!-- node10 -->
<g
id=
"node48"
class=
"node"
>
<title>
node10
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"962.27,-124 903.73,-124 903.73,-88 962.27,-88 962.27,-124"
/>
<text
text-anchor=
"middle"
x=
"933"
y=
"-101.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
Factory
</text>
</g>
<!-- node12 -->
<g
id=
"node49"
class=
"node"
>
<title>
node12
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"885.82,-124 804.18,-124 804.18,-88 885.82,-88 885.82,-124"
/>
<text
text-anchor=
"middle"
x=
"845"
y=
"-101.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
ReadModel
</text>
</g>
<!-- node19 -->
<g
id=
"node50"
class=
"node"
>
<title>
node19
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2559.3,-534 2442.7,-534 2442.7,-498 2559.3,-498 2559.3,-534"
/>
<text
text-anchor=
"middle"
x=
"2501"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
PersistenceObject
</text>
</g>
<!-- node29 -->
<g
id=
"node51"
class=
"node"
>
<title>
node29
</title>
<polygon
fill=
"none"
stroke=
"black"
points=
"2783,-534 2729,-534 2729,-498 2783,-498 2783,-534"
/>
<text
text-anchor=
"middle"
x=
"2756"
y=
"-511.8"
font-family=
"Times,serif"
font-size=
"14.00"
>
Page
</text>
</g>
</g>
</svg>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录