济南畜牧局项目后端
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

后端 - 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-iotlab-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-iotlab-plugin 在根 pom.xml 中被注释掉