首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从0到1搭建Spring Boot 开发脚手架之脚手架完整目录结构

从0到1搭建Spring Boot 开发脚手架之脚手架完整目录结构

作者头像
紫风
发布2025-10-14 18:12:22
发布2025-10-14 18:12:22
700
代码可运行
举报
运行总次数:0
代码可运行

按步骤把脚手架搭建到现在,现在已经完成的项目内的所有的目录,包括package结构,也包括package里边的文件名称都已树形展示一下,并配上相关的注释。先列出整体父项目的整体结构及文件目录,再按子项目的整体结构及文件目录依次做了下介绍。方便大家更直观的搭建项目,也方便直接复制粘贴。

脚手架完整目录结构(截至当前步骤)

1. 父工程 scaffold-parent
代码语言:javascript
代码运行次数:0
运行
复制
scaffold-parent/
├── pom.xml                    # 父工程POM文件(管理所有子模块依赖)
├── scaffold-common/           # 通用工具模块
├── scaffold-gateway/          # 网关模块
├── scaffold-auth/             # 认证中心模块
├── scaffold-user/             # 用户服务模块
├── scaffold-admin-ui/         # 后台管理前端模块(可选)
├── docker-compose.yml         # Docker一键部署配置
└── prometheus.yml             # Prometheus监控配置

2. 通用模块 scaffold-common
代码语言:javascript
代码运行次数:0
运行
复制
scaffold-common/
├── src/
│   └── main/
│       ├── java/
│       │   └── com/example/scaffold/common/
│       │       ├── aop/
│       │       │   └── LogAspect.java          # 日志切面(记录请求日志)
│       │       ├── config/
│       │       │   ├── RedisConfig.java        # RedisTemplate配置
│       │       │   ├── SwaggerConfig.java      # Swagger API文档配置
│       │       │   └── WebMvcConfig.java       # 全局Web配置(如跨域)
│       │       ├── constant/
│       │       │   ├── ErrorCode.java          # 全局错误码枚举
│       │       │   └── AuthConstant.java       # 鉴权相关常量(如JWT密钥)
│       │       ├── exception/
│       │       │   └── GlobalExceptionHandler.java  # 全局异常处理器
│       │       ├── response/
│       │       │   └── Response.java           # 统一响应封装类
│       │       └── util/
│       │           ├── JwtUtils.java           # JWT工具类(生成/解析Token)
│       │           └── RedisCache.java         # Redis缓存工具类
│       └── resources/
│           └── META-INF/                       # SPI扩展文件(可选)
├── pom.xml                  # 模块POM文件(依赖common工具包)
└── Dockerfile               # Docker构建文件(可选)

3. 网关模块 scaffold-gateway
代码语言:javascript
代码运行次数:0
运行
复制
scaffold-gateway/
├── src/
│   └── main/
│       ├── java/
│       │   └── com/example/scaffold/gateway/
│       │       ├── config/
│       │       │   └── GatewayRouteConfig.java  # 动态路由配置(从Nacos加载)
│       │       ├── filter/
│       │       │   ├── JwtAuthFilter.java       # JWT全局鉴权过滤器
│       │       │   └── RateLimitFilter.java     # 限流过滤器(Sentinel集成)
│       │       └── exception/
│       │           └── SentinelBlockHandler.java # 自定义限流异常响应
│       └── resources/
│           ├── application.yml                 # 网关配置文件(路由规则)
│           └── bootstrap.yml                   # Nacos配置(若使用配置中心)
├── pom.xml                  # 模块POM文件(依赖Spring Cloud Gateway)
└── Dockerfile               # Docker构建文件

4. 认证中心模块 scaffold-auth
代码语言:javascript
代码运行次数:0
运行
复制
scaffold-auth/
├── src/
│   └── main/
│       ├── java/
│       │   └── com/example/scaffold/auth/
│       │       ├── config/
│       │       │   └── SecurityConfig.java      # Spring Security核心配置
│       │       ├── controller/
│       │       │   └── AuthController.java      # 登录/登出接口
│       │       ├── entity/                      # 数据库实体类
│       │       │   ├── SysUser.java             # 用户表实体
│       │       │   ├── SysRole.java             # 角色表实体
│       │       │   └── SysPermission.java       # 权限表实体
│       │       ├── mapper/                      # MyBatis-Plus Mapper接口
│       │       ├── service/
│       │       │   ├── UserService.java         # 用户服务接口
│       │       │   └── impl/
│       │       │       └── UserServiceImpl.java # 用户服务实现(RBAC逻辑)
│       │       └── security/
│       │           ├── JwtAuthenticationFilter.java # JWT认证过滤器
│       │           └── UserDetailsServiceImpl.java  # 自定义用户详情服务
│       └── resources/
│           ├── application.yml                 # 认证中心配置文件
│           └── sql/
│               └── schema.sql                  # 数据库初始化脚本
├── pom.xml                  # 模块POM文件(依赖Spring Security)
└── Dockerfile               # Docker构建文件

5. 用户服务模块 scaffold-user
代码语言:javascript
代码运行次数:0
运行
复制
scaffold-user/
├── src/
│   └── main/
│       ├── java/
│       │   └── com/example/scaffold/user/
│       │       ├── config/
│       │       │   └── MybatisPlusConfig.java  # MyBatis-Plus分页插件配置
│       │       ├── controller/
│       │       │   └── UserController.java     # 用户管理接口(增删改查)
│       │       ├── entity/
│       │       │   └── User.java               # 用户表实体(业务扩展字段)
│       │       ├── mapper/
│       │       │   └── UserMapper.java         # MyBatis-Plus Mapper接口
│       │       ├── service/
│       │       │   ├── UserService.java        # 用户服务接口
│       │       │   └── impl/
│       │       │       └── UserServiceImpl.java # 用户服务实现(缓存逻辑)
│       │       └── dto/
│       │           ├── UserDTO.java            # 用户数据传输对象
│       │           └── UserQuery.java          # 用户查询参数封装
│       └── resources/
│           ├── application.yml                 # 用户服务配置文件
│           └── mapper/
│               └── UserMapper.xml              # 自定义SQL映射文件(可选)
├── pom.xml                  # 模块POM文件(依赖MyBatis-Plus)
└── Dockerfile               # Docker构建文件

6. 前端管理模块 scaffold-admin-ui(Vue3示例)
代码语言:javascript
代码运行次数:0
运行
复制
scaffold-admin-ui/
├── public/                  # 静态资源
│   └── index.html           # 入口HTML文件
├── src/
│   ├── api/                 # 接口定义
│   │   └── user.js          # 用户管理接口
│   ├── assets/              # 静态资源(图片/样式)
│   ├── components/          # 公共组件
│   │   └── PageHeader.vue   # 页面头部组件
│   ├── layouts/             # 布局组件
│   │   └── BasicLayout.vue  # 基础布局(包含菜单)
│   ├── router/              # 路由配置
│   │   └── index.js         # 路由定义
│   ├── store/               # Vuex状态管理
│   │   └── user.js          # 用户状态管理
│   ├── utils/               # 工具类
│   │   └── request.js       # Axios请求封装(携带Token)
│   ├── views/               # 页面视图
│   │   └── UserManage.vue   # 用户管理页面
│   ├── App.vue              # 根组件
│   └── main.js              # 入口JS文件
├── package.json             # 前端依赖管理
├── vue.config.js            # Vue CLI配置
└── Dockerfile               # 前端镜像构建文件

7. 监控与部署相关文件
代码语言:javascript
代码运行次数:0
运行
复制
scaffold-parent/
├── docker-compose.yml       # 定义所有服务的Docker容器配置
├── prometheus.yml           # Prometheus监控目标配置
└── grafana-dashboards/      # Grafana仪表盘配置文件(JSON格式)
    └── spring-boot-dashboard.json

关键目录说明
  1. 父工程 scaffold-parent
    • 统一管理所有子模块的依赖版本,避免冲突。
    • 通过 pom.xml 的 <modules> 定义子模块列表。
  2. 通用模块 scaffold-common
    • 被所有业务模块依赖,提供全局工具类、异常处理、Swagger配置等。
    • 确保各服务响应格式、日志规范一致。
  3. 网关模块 scaffold-gateway
    • 所有外部请求的入口,负责路由转发、鉴权、限流。
    • 通过 JwtAuthFilter 实现无状态认证。
  4. 认证中心 scaffold-auth
    • 实现RBAC权限模型,管理用户、角色、权限关系。
    • 提供登录接口并生成JWT Token。
  5. 用户服务 scaffold-user
    • 业务模块模板,其他业务模块(如订单服务)可复制此结构。
    • 演示如何集成MyBatis-Plus和Redis缓存。
  6. 前端模块 scaffold-admin-ui
    • 前后端分离的典型结构,通过Axios与后端交互。
    • 可根据需求替换为React或Ant Design Pro。

通过此结构,开发人员可以快速定位代码位置:

  • 新增业务模块:复制 scaffold-user 并修改包名。
  • 调整全局配置:修改 scaffold-common 中的工具类。
  • 扩展网关功能:在 scaffold-gateway/filter 中添加新过滤器。

本篇的分享就到这里了,感谢观看,如果对你有帮助,别忘了点赞+收藏+关注。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 脚手架完整目录结构(截至当前步骤)
  • 1. 父工程 scaffold-parent
  • 2. 通用模块 scaffold-common
  • 3. 网关模块 scaffold-gateway
  • 4. 认证中心模块 scaffold-auth
  • 5. 用户服务模块 scaffold-user
  • 6. 前端管理模块 scaffold-admin-ui(Vue3示例)
  • 7. 监控与部署相关文件
  • 关键目录说明
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档