前言
- 在业务开发过程中,普遍的分层为 controller、service、serviceImpl、mapper或dao、entity,等几层。但是在业务复杂度相对比较高的情况下。serviceImpl层中的逻辑会非常复杂,并且冗长。
- 所以在参考了其他的分层设计,并且根据自己的经验。对分层与职责进一步细化,项目与模块,根据实际情况进行取舍。
- 公共组件和框架组件,这里不分析。
项目结构
XXX项目
│
├─doc 项目文档
│ │
│ └─sql sql文件,可以按照日期进一步区分。
│ │
│ └─ yyyy-MM-dd-功能.sql
│
├─xxx-业务模块-api 对外接口(com.公司.项目.业务.模块.api)
│ │
│ ├─dto 对外实体包
│ │ │
│ │ ├─in dto入参(类名:XxxInDTO)
│ │ │
│ │ └─out dto出参(类名:XxxOutDTO)
│ │
│ ├─feign feign接口(接口类名:XxxFeign)
│ │
│ └─hystrix feign接口熔断返回实现(类名:XxxFallback)
│
├─xxx-业务模块-service 业务服务(com.公司.项目.业务.模块.service)
│ │
│ ├─provider 服务提供者,对应feign接口的实现(类名:XxxProvider)
│ │
│ ├─controller 控制层(类名