在搭建JaveWeb项目架构中,我们一般会分层设计,便于后期的维护,开发人员可以分模块去开发,提高整体团队的开发效率。层次按职责分一般分四层:表现层(SpringMVC)、持久层(mybatis)、业务层(service)和域模型层(SDK)。每一个层都有各自的职责,应该隔离开来。
表现层:我们可以选用技术SpringMVC,当然还可以选用Struts,该层主要根据用户的请求,响应跳转到不同的UI界面展现。
持久层:我们可选用技术mybatis或者hibernate,该层主要是针对数据库操作,比如:连接数据库、操作数据库(简单的增删改查)。
业务层:service主要是具体业务代码的实现,会调用dao层的接口,我们这里把dao层称为SDK层。
域模型层:SDK主要特指软件关注的领域 ,会设计出很多实体对象和接口。
四层的项目结构如下:
project-parent
|----pom.xml
|----project-mybatis
|----pom.xml
|----project-SDK
|----pom.xml
|----project-service
|----pom.xml
|----project-springmvc
|---pom.xml
若考虑到业务需要设计到分布式和大数据。我们可以在这基本四层上进行扩展,比如下面的架构体系
用到Dubbo的分布式服务框架,storm+kafka实时处理消息队列,redis去做高速缓存。
扩展项目结构如下:
project-parent
|----pom.xml
|----project-core
|----pom.xml
|----project-msgConsumer
|----pom.xml
|----project-msgProducer
|----pom.xml
|----project-mybatis
|----pom.xml
|----project-page
|----pom.xml
|----project-SDK
|----pom.xml
|----project-service
|----pom.xml
|----project-SpringMVC
|---pom.xml
|----project-storm
|----pom.xml
接下来博客中会介绍用maven去构建多模块项目。