index.md 3.26 KB

1. 心智模型

在任何贯穿示例之前,先建立概念地图。

框架是模块驱动的:PM 创建的每个页面、客户看到的每个页面,都是 gdsmodule 中的一行,并与 gdsconfigformmaster/slave 中的布局行、gdsjurisdiction 中的权限行,以及运行时通过 BusinessBaseController 调用的存储过程组合在一起。

总览

flowchart TB
    classDef oos stroke-dasharray:5 5,color:#999

    BACK["BACK<br/>配置 UI"]
    FROUNT["FROUNT<br/>客户 UI"]
    EXT([外部集成方])
    HOOKS([第三方 webhook])

    subgraph framework [框架运行时 - 本 Wiki 覆盖]
        XENTRY[xlyEntry]
        XAPI[xlyApi]
        XIF[xlyInterface]
        XFLOW[xlyFlow]
        XPLC[xlyPlc]
        XMSG[/"xlyMsg<br/>库"/]
    end

    DB[("MySQL<br/>xlyweberp_*")]
    REDIS[(Redis)]
    AMQ([ActiveMQ])
    XEJMSC[xlyErpJmsConsumer]
    PLAT[("xlyPlat* 模块<br/>+ MongoDB")]:::oos

    BACK --> XENTRY
    FROUNT --> XENTRY
    FROUNT --> XAPI
    EXT --> XAPI
    HOOKS --> XIF

    XENTRY --> DB
    XAPI --> DB
    XIF --> DB
    XFLOW --> DB
    XPLC --> DB

    XENTRY -- "保存时 @CacheEvict<br/>同步执行" --> REDIS
    XENTRY <-- "缓存读取<br/>+ Shiro session" --> REDIS
    XAPI <--> REDIS

    XENTRY -- "领域事件<br/>(不是缓存失效)" --> AMQ
    AMQ --> XEJMSC
    XEJMSC -- "PRO_ERPMERGEBASE*<br/>基础数据合并" --> DB

    XENTRY -. 使用 .-> XMSG
    XIF -. 使用 .-> XMSG

    PLAT -.-> DB

虚线簇(xlyPlat* + MongoDB)是 B2B 印刷平台层。它存在于构建中,但在本 Wiki 中不属于覆盖范围

注意运行时到 Redis / ActiveMQ 有两条不同路径:@CacheEvict 在保存流程中同步执行,直接清理共享 Redis 存储(跨节点一致性依赖共享存储)。JMS 路径是另一条基础数据合并通道,不是缓存失效;ConsumerChangeGdsModuleThread 会运行 PRO_ERPMERGEBASEGDSMODULE 等过程。这两条路径在元数据变更后的缓存失效中有完整说明。

每个框背后的类库清单见技术栈

概念页

这些页面刻意保持简短:每页解释一个概念,并链接到实际使用该概念的垂直切片。概念页应该短;如果一页长到超过一屏,通常说明它应该变成一个切片。