前言
每个有经验的开发者都有自己程序的开发规范,这篇文章是根据个人经验,以SpringBoot框架,java开发语言为示例,归纳总结出的一种代码目录结构。
在开发实践中不一定完全适合所有人,但是对于大部分人来说,应该可以满足大部分的场景。同时在实践中,需要基于需求,进行相应的调整,但大体上建议遵循该目录结构,提高代码的可读性以及可维护性.
后端
模块划分
即使是单体应用程序,也建议按照模块进行划分,每个模块对应一个目录,目录下存放该模块的代码。
📁 推荐模块结构(点击展开)
-
framework:框架模块,为整个应用程序提供基础功能,例如:数据库连接、缓存连接、日志记录、异常处理等。框架模块下应当有以下目录:- configration:框架级配置文件存放目录,例如:数据库连接配置、swagger配置文件等;
- exception:异常处理类存放目录;
- aspects:框架级切面类存放目录;
- interceptors:框架级拦截器存放目录;
- filters:框架级过滤器存放目录;
-
common:通用模块,为整个应用程序提供通用功能,例如:文件上传、图片处理、数据验证等,同时实体类、枚举类、工具类也可以放在该模块下。common模块下应当有以下目录:- models :模型存放目录,例如:实体类、请求参数模型、响应参数模型等;
- constants :常量存放目录,例如:枚举类、静态常量类等;
- utils :工具类存放目录;
-
业务模块:为业务功能提供支持,例如:后台管理、用户管理、权限管理、订单管理等。每个模块下应当有以下目录:
- service:业务逻辑处理类存放目录,包含接口定义类和实现类;
- controller:控制器存放目录;
- mapper:数据库操作类存放目录;
注意:如果业务模块中需要自定义特有的拦截器或者过滤器等需求,可以在对应的模块下创建相应的目录,例如:
interceptors、filters、aspects等。 -
async:异步任务模块(可选),为应用程序提供异步任务功能,例如:定时任务、邮件发送、短信发送等。异步任务模块下应当有以下目录:- service:异步任务处理类存放目录,包含接口定义类和实现类;
- listener:监听器存放目录;
- mapper:数据库操作类存放目录;
- configration:异步任务配置文件存放目录,例如:定时任务配置文件等;
2026/3/8大约 15 分钟