主要包说明:
公共模块
1、common:公共类,如枚举,常量、业务无关的通用公共实体等
2、util:常用实用的帮助类,如反射、字符串、集合、枚举、正则、缓存、队列等
3、config:自定义的配置项,可从配置文件读取
表现层
1、controller:负责页面访问控制,对外暴露Rest API接口
数据访问层
1、domain:数据对象实体DO,通常和数据表、视图或其他业务对象一一对应
2、dao:数据访问对象,本文demo选择比较熟悉的mybatis作为ORM工具
业务逻辑层
1、service:服务 contract是接口,impl是服务实现
2、entity:实体 vo是服务可对外公开的实体;dto是数据传输对象,可在服务间传递;qo:查询对象,可以认为是查询条件的封装
本文demo没有写dto和qo示例,很多中小型项目,entity其实是非常混乱的,实体设计和分层抽象有问题,有时候直接影响到业务逻辑复杂程度。
关于工程结构,尤其是应用分层和领域实体抽象(数据访问对象DO和显示层对象VO等),强烈推荐大家参考<<阿里巴巴Java开发手册>>终极版本的工程结构一章。