🐍 项目的结构还是需要定义好,不然随随便便就需要改动很大,思索下来目前的模块原则就定义为
- xxxx-api
- 主要包含接口和一些基础的其他业务需要使用到的东西
- XxxxxService 接口
- 公共Utils方法
- xxxx-model
- 主要包含前端对接的dto/vo,以及数据库层面的model等等
- 不包含xxxx-api模块
- xxxx-commons
- 包含xxxx-api和xxxx-model模块
- 提供一些基础的util方法,自用,不对外暴露,如果需要对外写在xxxx-api模块当中
- xxxx-orm
- 仅包含基础的mapper接口和mapper.xml文件,其他不表
- xxxx-service
- 核心的业务模块,所有的业务都从这里处理,可以集中处理事务,业务逻辑等等,同时也可以作为暴露dubbo服务的一层逻辑
- 一份公共的配置文件,不论是dev/test/prod环境都通用的配置
- 支持service模块配置启动
Service 本身就是可以单独启动的一个SpringBoot项目
- xxxx-web
- 对外提供http接口,这一层仅仅是提供用户信息和参数的娇艳,剩下的全部数据全部传递到xxxx-service模块进行处理
- 所有的http接口全部采用xxxxRequest/xxxxResponse进行参数接受和响应
- 基础的web模块配置
- 静态文件配置
- 全局异常配置
- 过滤器/监听器配置
[ ] dubbo服务配置
也不一定要100%按照这个思路来,灵活是最重要的,例如我有3个模块要起web服务,分别是task, web1 和 web2,那么在这里边的一些通用的配置可以提取到Service模块。 本身Service又是可以单独启动的,更好测试。