大型项目结构参考

根据以往的项目经验总结了一份项目结构图,以供参考,欢迎大家一起交流。
1 工程图预览
2 具体模块介绍
为表现清晰,图中的依赖都表现为直接依赖,整个项目的结构为maven的项目,
注意:maven的依赖是可以传递的,比方说A->B->C->D,A对B是直接依赖,A->C和D是传递依赖,也就是说A也依赖C和D模块。
common模块
这个是整个工程的通用模块,不依赖其它模块,主要功能可以提供工具类,日志类等
dao模块,database acessobject,主要是访问数据库和包含数据库的DO(database object),一般是一个表一个访问类,可以依赖model模块,model模块主要是领域模型的声明
remoting模块:
主要功能类似于数据源,主要是以rpc或http等方式远程调用外部的接口,诸如dubbo(阿里巴巴SOA服务化治理框架),http方式,也可以调用外部的webservice接口,访问mongodb数据库等。
Model模块:model模型层,主要是对外服务接口的领域对象声明,项目内部也是可以用的。
Service模块:服务接口声明层,主要是对外服务接口的声明,如果我们用dubbo的话是非常方便的,调用方之间依赖项目的这个组件即可,这个模块一般是在公司内部以第三方库的模式发布到maven仓库,其依赖的模块为model模块,返回的结果和接收的参数对象(自定义的类),这里为什么service和model要分开呢,因为我们在做服务化的时候,服务接口有变化(升级,降级,下线)的时候,有可能是不需要改动接口的,而是接口的返回结果或接口参数(自定义类)增加一个或几个字段即可,而服务接口不需要改动。
Biz-common模块:通用的业务模块:诸如日志拦截器,权限的校验,通用的MQ调用等,通用等业务功能如:访问统一的用户信息,权限信息等。这个不是必须的,一般适用于大型的业务项目
Biz-module1:具体的业务模块实现,比如实现service模块的接口声明,访问数据库和远程接口等。
Biz-module2:和biz-module1模块功能类似,在大项目的开发中,就需要划分很多的业务模块和分模块来开发了,可以根据项目业务情况自行决定。
 Web模块:web模块一般是项目的应用层【biz层实现远程接口的业务层也是可以直接对外暴露接口的,如dubbo接口,hessian接口】,包含页面控制层和试图层,WEB模块也可以多是多个,这个也是表现在大型项目的开发中

发表评论

电子邮件地址不会被公开。 必填项已用*标注