微服务项目代码结构

微服务项目代码接口

1.微服务代码结构

在实际的微服务开发中,我们常常这样来划分层次

tt-root
├── tt-auth -- 授权服务提供
├── tt-common -- 常用工具封装包
├── tt-gateway --  网关
├── tt-ops -- 运维中心
├    ├── tt-admin -- spring-cloud后台管理
├    ├── tt-develop -- 代码生成
├    ├── tt-resource -- 资源管理
├    ├── tt-seata-order -- seata分布式事务demo
├    ├── tt-seata-storage -- seata分布式事务demo
├── tt-service-provider -- 业务模块
├    ├── tt-desk-provider -- 工作台模块 
├    ├── tt-log-provider -- 日志模块 
├    ├── tt-system-provider -- 系统模块 
├    ├── tt-user-provider -- 用户模块 
├    ├── tt-order-provider -- 订单模块 
├         ├── entity(数据表字段映射实体类包)
├		  ├── dao(数据操作类包)
├		  ├── service(服务操作类包)
├		  ├── api(服务暴露实现类包)
├── tt-service-api -- 业务模块api封装
├    ├── tt-desk-api -- 工作台api 
├    ├── tt-dict-api -- 字典api 
├    ├── tt-system-api -- 系统api 
├    ├── tt-user-api -- 用户api 
├──  └── tt-order-api -- 订单api 
├		  ├── request(请求实体包)
├		  ├── response(返回实体包)
└──		  └── api (服务暴露接口包)
2.包依赖关系

举例:将order分为两个jar,一个是api包,另一个是provider

  • api包:主要存在服务接口的暴露,包括请求实体类和返回实体类,比较纯粹
  • provider包:主要用于服务接口的实现,包括一些逻辑处理,类似我们传统web工程,是一个真正的服务处理工程

其中provider包依赖于api包,api包主要用于对外开放服务接口!

在这里插入图片描述

禁止出现以下依赖

这样子会导致在启动order服务或者user的时候,工程会报jar冲突,工程存在循环依赖的问题!

原因:order-api.jar包依赖user-api.jar然后user-api.jar又依赖order-api.jar,导致循环依赖!
在这里插入图片描述

正确的做法应该是由provider工程来依赖,而不是由api来依赖!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

包耳邹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值