# LabelingPlatforms_Backend_Java **Repository Path**: anthony92/labeling-platforms_-backend_-java ## Basic Information - **Project Name**: LabelingPlatforms_Backend_Java - **Description**: 基于主动学习的数据集标注平台java版 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-11-20 - **Last Updated**: 2025-11-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 标注平台后端项目 (LabelingPlatforms Backend) ## 项目概述 这是一个基于 Spring Boot 的标注平台后端项目,用于支持主动学习数据集标注系统。项目采用微服务架构,通过 Spring Boot 实现核心业务逻辑,通过 RabbitMQ 与 Flask 服务进行异步通信。 ## 技术栈 ### 后端框架 - **Spring Boot 3.5.6** - 主框架 - **Java 21** - 开发语言 - **Maven** - 项目管理工具 ### 数据库与ORM - **MySQL 8.0.33** - 主数据库 - **MyBatis 3.0.3** - ORM框架 - **Druid 1.2.24** - 数据库连接池 - **PageHelper 2.1.0** - 分页插件 ### 消息队列 - **RabbitMQ** - 异步消息通信(与Flask服务) ### 开发工具 - **Lombok 1.18.42** - 代码简化工具 - **MyBatis Generator 1.3.7** - 代码生成插件 ## 项目结构 ``` LabelingPlatforms_backend/ ├── src/main/java/com/label/annotation_platform/ │ ├── AnnotationPlatformApplication.java # 启动类 │ ├── controller/ # 控制器层 │ │ ├── UserController.java # 用户管理控制器 │ │ ├── DatasetController.java # 数据集管理控制器 │ │ ├── TaskController.java # 任务管理控制器 │ │ └── AnnotationController.java # 标注管理控制器 │ ├── service/ # 服务层 │ │ ├── UserService.java # 用户服务 │ │ ├── DatasetService.java # 数据集服务 │ │ ├── TaskService.java # 任务服务 │ │ └── AnnotationService.java # 标注服务 │ ├── entity/ # 实体类 │ │ ├── User.java # 用户实体 │ │ ├── Dataset.java # 数据集实体 │ │ ├── Task.java # 任务实体 │ │ └── Annotation.java # 标注实体 │ ├── repository/ # 数据访问层 │ │ ├── UserMapper.java # 用户数据访问 │ │ ├── DatasetMapper.java # 数据集数据访问 │ │ ├── TaskMapper.java # 任务数据访问 │ │ └── AnnotationMapper.java # 标注数据访问 │ ├── config/ # 配置类 │ │ ├── RabbitMQConfig.java # RabbitMQ配置 │ │ ├── DatabaseConfig.java # 数据库配置 │ │ └── WebConfig.java # Web配置 │ └── dto/ # 数据传输对象 │ ├── ApiResponse.java # 统一响应格式 │ ├── UserDTO.java # 用户DTO │ ├── DatasetDTO.java # 数据集DTO │ ├── TaskDTO.java # 任务DTO │ └── AnnotationDTO.java # 标注DTO ├── src/main/resources/ │ ├── application.yml # 主配置文件 │ ├── application.properties # 应用配置 │ ├── generatorConfig.xml # MyBatis代码生成配置 │ ├── mybatis-config.xml # MyBatis配置 │ ├── logback.xml # 日志配置 │ └── mapper/ # MyBatis映射文件 │ ├── UserMapper.xml # 用户映射文件 │ ├── DatasetMapper.xml # 数据集映射文件 │ ├── TaskMapper.xml # 任务映射文件 │ └── AnnotationMapper.xml # 标注映射文件 ├── src/test/java/ # 测试代码 ├── pom.xml # Maven配置 └── README.md # 项目文档 ``` ## 核心功能模块 ### 1. 用户管理 (User Management) - **功能**: 用户注册、登录、权限管理 - **控制器**: `UserController` - **服务**: `UserService` - **实体**: `User` - **数据访问**: `UserMapper` ### 2. 数据集管理 (Dataset Management) - **功能**: 数据集上传、管理、版本控制 - **控制器**: `DatasetController` - **服务**: `DatasetService` - **实体**: `Dataset` - **数据访问**: `DatasetMapper` ### 3. 任务管理 (Task Management) - **功能**: 标注任务创建、分配、进度跟踪 - **控制器**: `TaskController` - **服务**: `TaskService` - **实体**: `Task` - **数据访问**: `TaskMapper` ### 4. 标注管理 (Annotation Management) - **功能**: 标注数据管理、质量控制 - **控制器**: `AnnotationController` - **服务**: `AnnotationService` - **实体**: `Annotation` - **数据访问**: `AnnotationMapper` ## 配置说明 ### 数据库配置 ```yaml spring: datasource: druid: username: root password: root url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver ``` ### 数据库监控 - **监控地址**: http://localhost:8080/druid/ - **用户名**: admin - **密码**: admin ### 日志配置 - **日志文件**: `d:/data/applogs/xxl-job/xxl-job-executor-sample-springboot.log` - **日志级别**: INFO - **滚动策略**: 按日期滚动 ## API接口规范 ### 统一响应格式 ```json { "code": 200, "message": "success", "data": {} } ``` ### RESTful API设计 - **GET** `/api/users` - 获取用户列表 - **POST** `/api/users` - 创建用户 - **PUT** `/api/users/{id}` - 更新用户 - **DELETE** `/api/users/{id}` - 删除用户 ## 开发规范 ### 命名规范 - **Java类**: 使用驼峰命名 (PascalCase) - **Java方法/变量**: 使用驼峰命名 (camelCase) - **数据库表名**: 全小写,使用下划线分隔 - **数据库字段名**: 全小写,使用下划线分隔 ### 代码规范 - 所有类与函数需添加简短中英文注释 - 遵循RESTful API设计原则 - 统一返回格式:`{ code, message, data }` - 优先遵循接口文档,其次遵循RESTful风格 ## 快速开始 ### 环境要求 - Java 21+ - Maven 3.6+ - MySQL 8.0+ - RabbitMQ 3.8+ ### 安装步骤 1. **克隆项目** ```bash git clone cd LabelingPlatforms_backend ``` 2. **配置数据库** ```sql CREATE DATABASE mybatis CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 3. **修改配置文件** ```yaml # src/main/resources/application.yml spring: datasource: druid: username: your_username password: your_password url: jdbc:mysql://localhost:3306/your_database ``` 4. **运行项目** ```bash mvn spring-boot:run ``` 5. **访问应用** - 应用地址: http://localhost:8080 - 数据库监控: http://localhost:8080/druid/ ## 代码生成 使用MyBatis Generator自动生成代码: ```bash mvn mybatis-generator:generate ``` 配置说明: - 实体类生成到: `com.label.annotation_platform.entity` - Mapper接口生成到: `com.label.annotation_platform.mapper` - XML文件生成到: `src/main/resources/mapper` ## 部署说明 ### 打包部署 ```bash mvn clean package java -jar target/Annotation_platform-0.0.1-SNAPSHOT.jar ``` ### Docker部署 ```dockerfile FROM openjdk:21-jre-slim COPY target/Annotation_platform-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/app.jar"] ``` ## 贡献指南 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 联系方式 如有问题或建议,请通过以下方式联系: - 项目Issues: [GitHub Issues](https://github.com/your-repo/issues) - 邮箱: your-email@example.com --- **注意**: 本项目是标注平台的后端服务,需要配合Flask服务使用,通过RabbitMQ进行异步通信。