请注意,本文编写于 366 天前,最后修改于 0 天前,其中某些信息可能已经过时。
良好的包命名规范是 Maven 项目可维护性和团队协作的基础。本文提供一套完整的分层架构包命名规范,参考主流企业级 Spring Boot 项目实践。核心结构涵盖:api(查询接口与实现,按业务模块划分,内含 dto 参数对象与 impl 实现类)、constant(常量和枚举)、controller(对外控制器)、convert(MapStruct 类型转换器)、dal(数据访问层,细分为 dataobject 数据库实体与 mysql Mapper)、framework(脚手架基础设施,如验证码、数据权限、操作日志、短信等子模块)、job(定时任务)、mq(消息队列,含 config/consumer/producer)、repository(对接三方服务如 GitLab、Jenkins、K8s,按服务名细分)、service(业务接口与实现,含 dto 业务参数)、util(工具类)。本文附有完整示例(权限、菜单、用户、角色等模块)。
适用于需要统一 Maven 项目包结构的 Java 开发团队。
参考结构
- api 查询接口和实现类
- 类型名称, 比如权限permission, 里面包含permission和role
- constant 常量和枚举类
- controller 对外控制器
- convert Mapstruct等类型转换器
- dal
- dataobject 数据库实体类
- mysql mysql数据库对应的mapper实体类
- framework 脚手架、基础设施等
- captcha 验证码
- datapermission 数据权限
- operatelog 操作日志
- sms 短信发送
- job 定时任务
- mq 消息队列
- config 配置
- consumer 消费者
- producer 生产者
- repository 对接三方服务,比如gitlab、jenkins、k8s等
- service 业务接口
- util
Demo
- api
- permission
- RoleApi
- PermissionApi
- dto
- QueryRoleByArgs
- QueryPermissionByArgs
- impl
- RoleApiImpl
- PermissionApiImpl
- constant
- MenuTypeEnum
- DataScopeEnum
- SystemConst
- controller
- AuthController
- CaptchaController
- convert
- dal
- framework
- captcha
- config
- core
- CaptchaService 这里为什么是service,因为验证码是该系统所属的
- job
- mq
- config
- consumer
- AliPayInfoRocketMQConsumer
- producer
- AliPayInfoRocketMQProducer
- repository
- gitlab
- GitlabAuthRepository
- GitlabUserRepository
- GitlabProjectRepository
- GitlabPipelineRepository
- jenkins
- JenkinsAuthRepository
- JenkinsPipelineRepository
- k8s
- KubernetesAuthRepository
- KubernetesNamespaceRepository
- KubernetesServiceRepository
- KubernetesStatefulSetRepository
- service
- MenuService
- RoleService
- impl
- MenuServiceImpl
- RoleServiceImpl
- util
本文作者:Odboy
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC 4.0 BY-SA
许可协议。转载请注明出处!