一文带你看清Java项目结构
做项目时有没有出现新建一个文件不知该放哪,有没有出现过找不到自己写的代码,这次带你一次性梳理好项目结构。
本项目结构参考《阿里巴巴Java开发手册》制作,也是多数中大型项目的架构。当然,还是要以需求为主,如果是练习的小项目完全不必按照此项目结构进行项目创建。小型项目创建的粒度太细只会适得其反。
1. 基本结构图
这一部分绝大多数程序猿是知道的
- /src/main/java :Java源代码
- /src/main/resources:配置文件与静态文件
- /src/test/java:测试用的Java代码
2. java源代码的结构
- annotation :项目内的自定义注解
- aspect:切面代码(AOP)
- config:配置类
- constant:常量、枚举层
- consist:常量
- enums:枚举
- controller:前端控制器
- filter:过滤器、拦截器
- mapper:数据访问层
- model:数据模型
- dto:数据传输对象
- entity:数据库实体类
- vo:显示层对象
- service:业务逻辑
- intf:接口定义
- impl:接口实现
- utils:工具类
《阿里巴巴Java开发手册》分层领域模型规约:
DO(Data Object) :与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
DTO(Data Transfer Object) :数据传输对象, Service 或 Manager 向外传输的对象。
BO(Business Object) :业务对象。 由 Service 层输出的封装业务逻辑的对象。
AO(Application Object) : 应用对象。 在 Web 层与 Service 层之间抽象的复用对象模型,
极为贴近展示层,复用度不高。
VO(View Object) : 显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
Query:数据查询对象,各层接收上层的查询请求。 注意超过 2 个参数的查询封装,禁止使用 Map 类来传输。
3. resources源代码的结构
- mapper:存放mybatis的XML文件(非mybatis无需此项)
- static:静态资源(css,js,img等静态文件)
- templates:网页模板(xxx.html)
- application.yml:基本配置文件
- application-dev.yml:开发环境配置文件
- application-prod.yml:生产环境配置文件
- application-test.yml:测试环境配置文件
4. test源代码的结构
执行流程
具体项目结构需根据实际项目来定义。当然,有规律的项目结构在后期维护当然会事半功倍。