Hidewnd Docs Hidewnd Docs
首页
  • 常用开发环境
  • 常用提示词
  • 常用Linux命令
  • 常用Git规范及命令
  • Java开发聊天机器人
  • word模板生成实现方案
  • 基于Go写一个极简的通讯demo
  • SpringBoot配置文件加密处理
  • SpringBoot优雅的抛出业务异常
  • 通用大模型适配器
  • 10分钟快速搭建个人博客
  • [学习笔记]Lua
  • [学习笔记]JVM
  • [学习笔记]设计模式
  • [部署笔记]搭建Typecho博客
  • [部署笔记]部署Qsign签名机
  • [部署笔记]安装PVE系统
  • [部署笔记]部署KingBaseV9电科金仓
  • 技艺成本
  • Rules
  • Setting
  • Skill
  • 剑三网站合集
  • 合并大区角色数据处理
  • 25PT冷龙峰教学笔记
  • 25PT太极宫教学笔记
  • 25PT弓月城教学笔记
关于
GitHub (opens new window)
首页
  • 常用开发环境
  • 常用提示词
  • 常用Linux命令
  • 常用Git规范及命令
  • Java开发聊天机器人
  • word模板生成实现方案
  • 基于Go写一个极简的通讯demo
  • SpringBoot配置文件加密处理
  • SpringBoot优雅的抛出业务异常
  • 通用大模型适配器
  • 10分钟快速搭建个人博客
  • [学习笔记]Lua
  • [学习笔记]JVM
  • [学习笔记]设计模式
  • [部署笔记]搭建Typecho博客
  • [部署笔记]部署Qsign签名机
  • [部署笔记]安装PVE系统
  • [部署笔记]部署KingBaseV9电科金仓
  • 技艺成本
  • Rules
  • Setting
  • Skill
  • 剑三网站合集
  • 合并大区角色数据处理
  • 25PT冷龙峰教学笔记
  • 25PT太极宫教学笔记
  • 25PT弓月城教学笔记
关于
GitHub (opens new window)
  • Cursor
  • Rules

    • caching-and-distributed-lock
    • database-entity-annotations
    • design-patterns
    • idempotency-specification
    • java-21-language-specification
    • java-clean-code-effective-java-spec
    • java-entity-vo-specification
    • java-language-specification
    • logging-specification
    • openapi-and-api-doc-spec
    • persistence-repository-specification
    • rest-api-specification
    • springboot-architecture-layering
      • 分层原则
      • 推荐包结构
      • 依赖方向约束
      • 代码组织约定
    • springboot-config-and-profiles
    • springboot-exception-and-error-code
    • springboot-testing-specification
    • validation-specification
  • Setting

  • Skill

  • Cursor
  • Rules
hidewnd
目录

Spring Boot 分层与包结构规范

# Spring Boot 分层与包结构规范

# 分层原则

  • 表现层:处理 HTTP 请求与响应,仅做协议适配和入参出参转换
  • 应用层:编排业务用例流程,组合领域服务与基础设施能力
  • 领域层:承载核心业务模型与业务规则,包含领域实体、值对象、领域服务
  • 基础设施层:实现持久化、远程调用、消息队列、缓存等技术细节

# 推荐包结构

  • com.example.project.interfaces:对外接口层
    • controller:REST 或 RPC 入口
    • dto、vo:入参与出参对象
  • com.example.project.application:应用服务层
    • service:应用服务类
    • assembler:对象装配与转换
  • com.example.project.domain:领域层
    • model:聚合根、实体、值对象
    • service:领域服务
    • repository:领域仓储接口
  • com.example.project.infrastructure:基础设施层
    • repository:仓储实现与数据访问实现
    • remote:远程服务调用适配
    • mq:消息生产与消费实现
    • config:基础设施相关配置

# 依赖方向约束

  • 表现层只依赖应用层与接口层对象,不直接依赖基础设施实现
  • 应用层依赖领域层与基础设施抽象接口
  • 领域层仅依赖自身与向下的基础设施抽象接口
  • 基础设施层可以依赖领域层的抽象与模型,不反向依赖应用层与表现层

# 代码组织约定

  • 同一业务域聚合到同一子包中,避免跨域耦合
  • Controller 命名以 *Controller 结尾,应用服务以 *AppService 或 *Service 结尾
  • 领域服务以 *DomainService 结尾,仓储接口以 *Repository 结尾
  • 禁止在 Controller 中直接编写数据库访问或远程调用逻辑
rest-api-specification
springboot-config-and-profiles

← rest-api-specification springboot-config-and-profiles→

github
Theme by Vdoing | Copyright © 2024-2026 Hidewnd
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式