单个服务内分为以下几个模块:
-
服务接口 api
为其他服务提供内部调用接口
-
服务实现 service
实现业务逻辑
实现内部调用接口
实现前端调用接口
-
服务启动器 starter
为其他服务提供启动时服务
-
聚合实体类 aggregation
aggregation 为其他服务提供聚合实体类
1.服务接口 api
1.1 目录结构
一级目录 | 功能 |
---|---|
api | 服务接口 |
domain | 接口用的实体类 |
2.服务实现 service
2.1 目录结构(自顶而下结构)
一级目录 | 二级目录 | 功能 |
---|---|---|
management | controller | 管理端接口 |
handler | 管理端业务实现 | |
domain | 管理端实体类 | |
convert | entity转domain的工具类包 | |
internal | controller | 实现服务接口 api中的api接口,为微服务内部提供服务 |
handler | 内部服务业务实现 | |
component | 通用复杂业务逻辑实现 | |
listener | 如果有状态机的话会使用 | |
service | 对DAO层的封装,通常Cacheable会写到这一层 | |
repository | DAO层 | |
domain | 通用的实体类,通常为其他domain的查询返回实体的父类 | |
entity | 数据库实体类,需要和表结构对应 | |
convert | entity转domain的工具类包 |
2.2 调用关系
image.png3.服务启动器 starter
没有具体的目录结构规定,通常是实现简单的逻辑,会调用服务接口 api
4.聚合实体类 aggregation
没有具体的目录结构规定,通常是聚合用的实体类
总结:
通常服务接口 api、 服务启动器 starter、聚合实体类 aggregation 模块会打成jar包供其他服务引入调用
网友评论