共计 890 个字符,预计需要花费 3 分钟才能阅读完成。
单个服务内分为以下几个模块:
-
服务接口 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 调用关系
graph TD
A[controller]--domain-->B[handler]
B--domain-->H[convert]
H--entity-->B
B--domain-->G[internal 其余服务的 api]
B--entity-->C[service]
C--entity-->D[repostiry]
B--domain-->E[commponent]
E--entity-->C
I[linstener] --> G
I --> E
I --entity--> C
3. 服务启动器 starter
没有具体的目录构造规定,通常是实现简略的逻辑,会调用 服务接口 api
4. 聚合实体类 aggregation
没有具体的目录构造规定,通常是聚合用的实体类
总结:
通常 服务接口 api、服务启动器 starter、聚合实体类 aggregation 模块会打成 jar 包供其余服务引入调用
正文完