WA04
该项目架构从 COLA 5 的基础上进行了修改,主要修改了以下几个地方:
- 项目布局发生了变化,不再是一个单一的项目,而是一个多模块的项目,每个模块都是一个独立的项目,可以单独运行,也可以作为一个模块被其他模块引用。
- 项目的依赖管理发生了变化,使用 Gradle 进行依赖管理。
- 没有使用 COLA 的组件库,我们自己构建了适合的组件库
结构变化
Infrastructure
基础实施层(Infrastructure Layer)
- Configuration: Springboot 的配置。
- DTO: 系统的传输对象,包含请求、响应还有数据库的Model。
- Adapter: 整个系统的对外的处理逻辑,里面有具体的技术细节,追求简化和剥离业务逻辑,要求跟逻辑区分。
- Repository 数据仓库,写 Mysql 数据的 Mapper,在 Mybatis 里叫 Mapper,在JPA里叫 Repository。
Api
接口层(Api Layer),负责提供和接受外部的请求比如 Restful,RabbitMQ Messaging
- api-websocket: 负责 Websocket 长链接的会话保持,处理简单的消息下行。
- api-user: 系统的认证和授权,还有用户相关的API提供,比如小孩相关、设备相关的信息CURD的接口。 api-user 拥有整个系统大部分的逻辑。
- api-message: 提供消息上行接口和拉取消息接口,消息从客户端HTTP接口产生后在 api-message 里RabbitMQ发送至消息队列。
- api-location: 系统定位服务处理定位相关业务逻辑,如电子围栏、IOT 定位。同时也拥有产生定位消息的能力。
架构图

路径上下文

启动项目
TODO
Reference