Java包目录结构规范
项目根目录
- rootDir/src/main/java:放置项目Java源代码
- rootDir/src/main/resources:放置项目静态资源和配置文件
- rootDir/src/test/java:放置项目测试用例代码
源代码包结构分层
源代码结构
controller:放置控制器代码
scheduler:放置调度器代码
consumer:放置消息消费者
service:放置具体的业务逻辑代码(接口和实现分离)
service/intf:存放业务逻辑接口定义
service/impl:存放业务逻辑实际实现
executor:放置scheduler调度器的逻辑实现
dao:放置数据访问层代码
dao/mapper:放置关系型数据库访问层代码接口
dao/mongoRepository:放置mongodb访问层代码接口
dao/redisRepository:放置redis访问层代码接口
model:放置数据模型代码
model/entity:放置数据库实体对象定义
model/dto:存放数据传输对象定义
model/vo:存放显示层对象定义
config: 放置配置类
aspect: 放置切面代码
annotation: 放置项目自定义注解
constant: 放置常量、枚举等定义
constant/consist:存放常量定义
constant/enums:存放枚举定义
filter:放置一些过滤、拦截相关的代码
utils:放置工具类和辅助代码
注意事项
- Contorller层参数传递建议使用dto数据模型
- Contorller层进行输出或展示建议使用vo数据模型,不允许直接使用entity数据模型。
- Controller层里可以做参数校验、异常抛出等操作,但建议不要放太多业务逻辑,业务逻辑尽量放到Service层代码中
- Service层做实际业务逻辑,可以按照功能模块做好定义和区分,相互可以调用。
- 逻辑层接受入参应该匹配Contorller层的dto数据模型参数,且不允许直接返回entity数据模型到Contorller层。