# 微服务项目规范 ## base-pom 公司所有项目依赖统一管理. 任何服务中引入新的依赖后,需要在base-pom中添加依赖管理 ## common common-core:提供了基本的公共类. common-spring:各种中间件或工具与spring融合的增强 common-mvc:与springmvc相关的技术的增强和配置 ## 微服务结构 project是maven主项目, 以base-pom为parent. controller,service,persistence,model是module,以project为parent. ## model model分为entity,DTO,VO * entity:常规模型,通常与数据库对应(不绝对). * DTO:服务间数据传输,临时对象,都可以使用DTO. * VO:展示层数据传输 除了以上三种,不能有更多model命名方式. ## persistence 依赖model层. 简单查询可以直接使用mybatisplus中提供的`IService`或`BaseMapper`进行查询,不需要写sql; 复杂查询,在mapper.xml中写sql; 每个服务只能连接自己的数据库, 不能直连其他数据库, 如果需要从其他数据库读写数据, 应该通过其他服务器的接口. ## service 主要代码都在该层. 所有service必须有接口. `config`spring相关配置 `constant`全局通用静态变量 `consumer`服务调用者,使用feign `job`任务调度 `listener`消息队列消费者 `dto`数据模型 `model`数据模型 `impl`service接口实现 ## controller 控制器层,分为web控制器和api控制器. web控制器用于对外接口,api控制用于内部接口 该层只做数据路由, 不能包含主要逻辑. ## provider 提供可供其他服务调用的api.