You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.2 KiB
4.2 KiB
后端 - SpringBlade(Spring Boot + Cloud)
技术栈: Spring Boot 2.2.13, Spring Cloud Hoxton.SR11, MyBatis-Plus, Flowable 6.4.2, XXL-Job Java: 1.8 | 构建: Maven 3.8+ | 注册中心: Nacos | 部署: Docker(Harbor: 192.168.0.106)
目录结构
project_husbandry_back/
├── lab-auth/ # 认证授权(OAuth2/JWT)
├── lab-common/ # 公共模块(Redis 缓存、配置、常量、工具类、启动类)
├── lab-gateway/ # Spring Cloud Gateway(路由、过滤器)
├── lab-ops/ # 运维模块(11 个子模块)
│ ├── lab-admin/ # 管理后台
│ ├── lab-develop/ # 开发工具/代码生成器
│ ├── lab-log/ # 审计日志
│ ├── lab-mail/ # 邮件服务
│ ├── lab-office/ # Office 文档处理
│ ├── lab-report/ # 报表引擎
│ ├── lab-resource/ # 文件/OSS 资源管理
│ ├── lab-swagger/ # Swagger API 文档聚合
│ ├── lab-turbine/ # Hystrix 监控面板
│ ├── lab-xxljob/ # XXL-Job 分布式任务执行器
│ └── lab-xxljob-admin/ # XXL-Job 管理后台
├── lab-ops-api/ # 运维模块 Feign 客户端接口
├── lab-plugin/lab-workflow/ # Flowable 工作流引擎
├── lab-service/ # 业务服务模块
│ ├── lab-capital/ # 资金/财务
│ ├── lab-desk/ # 工作台/通知
│ ├── lab-file/ # 文件管理
│ ├── lab-iot/ # IoT 集成(已注释,未启用)
│ ├── lab-lims/ # LIMS 核心模块(最大模块,250+ Java 文件)
│ ├── lab-monitor/ # 监控
│ ├── lab-repair/ # 维修管理
│ ├── lab-system/ # 系统设置
│ └── lab-user/ # 用户管理
├── lab-service-api/ # 业务服务 Feign 客户端接口
└── script/ # Docker Compose、SQL 迁移脚本、fatjar 脚本
分层模式(每个模块)
controller/ → service/(接口)→ service/impl/ → mapper/(MyBatis-Plus)
额外包: entity/, vo/, dto/, wrapper/, feign/, excel/, utils/
快速定位
| 任务 | 路径模式 |
|---|---|
| REST 控制器 | lab-service/*/src/.../controller/*Controller.java |
| 业务逻辑 | lab-service/*/src/.../service/impl/*ServiceImpl.java |
| 数据库 Mapper | lab-service/*/src/.../mapper/*Mapper.java |
| 实体类 | lab-service/*/src/.../entity/*.java / lab-service-api/*/src/.../entity/*.java |
| Feign 客户端 | lab-service-api/*/src/.../feign/*Client.java |
| 视图对象 | lab-service-api/*/src/.../vo/*VO.java |
| Excel 导出 | lab-service/*/src/.../excel/*.java |
约定规范
- 包结构:
org.springblade.{模块}.{领域}— 如org.springblade.lims.capital - API 版本: 通过
bladex.project.version管理(当前 2.8.1.RELEASE) - 配置: 每个模块有自己的
application-{profile}.yml,通过 Nacos bootstrap.yml 加载 - 服务间调用: 通过
lab-*-api模块的 Feign 客户端实现 - 认证: JWT 令牌,网关层校验,通过请求头传播
- 数据库: MySQL + MyBatis-Plus(自动填充 createTime/updateTime)
- 日志: SLF4J + Logback
- Docker: 每个可部署模块都有独立的 Dockerfile
反模式
- 生产模块无单元测试(仅有 TestController/TestValue 空壳)
lab-iot和lab-plugin在根 pom 中被注释掉.idea/目录提交到了版本控制
常用命令
# 构建整个后端(跳过测试)
mvn clean install -Dmaven.test.skip=true
# 运行某个模块
cd lab-gateway && mvn spring-boot:run
# Docker 打包
mvn clean package -Dmaven.test.skip=true -Pprod
备注
- 最大模块:
lab-lims(横跨 controller/service/mapper/entity,约 250+ Java 文件) lab-common被所有模块共享 — 修改需谨慎- Docker 镜像标签格式:
${docker.registry.url}/${docker.namespace}/${artifactId}:${version} - 镜像仓库: 192.168.0.106:2375(Harbor,命名空间: lab)
lab-iot和lab-plugin在根 pom.xml 中被注释掉