项目结构
现在大公司项目的趋势,都是越做越大,如果一开始项目结构设计不合理,就会导致后面的任务分配困难重重,也可能导致,各种服务间依赖混乱,所以一开始,需要制定一个合理,且易懂的项目结构。
现在主流的java开发框架是SpringCloud体系与Dubbo体系,针对这两种体系结合自身经验,做一个项目结构总结
SpringCloud体系
springcloud体系,首先要做的是服务拆分,这块要根据具体业务分析,如果是做底层架构,这块需要拆分的足够细,然后就是服务服务拆分的原则,一些禁止项就不要触碰
首先,每个服务,都划分为:
web(唯一启动项目)
entity
provider
service
enum
dao(可有,也可无,可以在开源框架上套一层,达到service层具有各种查询功能,那样就可以去掉dao层)
dubbo体系
web(唯一启动项目)
entity
provider
api-provider
service
enum
dao(可有,也可无,可以在开源框架上套一层,达到service层具有各种查询功能,那样就可以去掉dao层)
对比springcloud体系,多了一个api-provider层,这是dubbo的特性决定的。
项目布局
一定要避免maven的循环依赖,这样会导致项目启动不了
解决方法是业务偏移,所有有相互依赖的地方,都集中在其中的一个服务上做。
其中不可缺少得部分有common部分,服务的总父级项目,可以放到common中,依赖的第三方服务,也可以放到common中,工具类,总的枚举也可以放到common中