# ERP Java 后端开发指南 ## 环境准备 ### 1. 开发环境要求 - JDK 17+ - Maven 3.8+ - Docker 20.10+ - IDE: IntelliJ IDEA / VS Code ### 2. 启动基础设施 ```bash # 进入项目根目录 cd /root/.openclaw/workspace/erp-java-backend # 启动所有基础设施服务 docker-compose up -d # 查看服务状态 docker-compose ps # 访问服务 # Nacos控制台: http://localhost:8848/nacos (账号:nacos 密码:nacos) # RocketMQ控制台: http://localhost:8080 # SkyWalking UI: http://localhost:8081 # MinIO控制台: http://localhost:9001 (账号:minioadmin 密码:minioadmin123) ``` ### 3. 初始化数据库 ```bash # 数据库已通过docker-compose自动初始化 # 数据库连接信息: # - 主机: localhost:3307 # - 数据库: erp_java # - 用户名: erp_user # - 密码: erp123456 ``` ## 项目结构 ### 模块说明 ``` erp-java-backend/ ├── common/ # 公共模块 │ ├── common-core/ # 核心工具类、常量、异常 │ ├── common-web/ # Web相关(响应封装、异常处理) │ ├── common-mybatis/ # MyBatis配置 │ └── common-redis/ # Redis配置 ├── services/ # 业务服务 │ ├── api-gateway/ # API网关(待实现) │ ├── user-service/ # 用户服务(已创建) │ ├── product-service/ # 商品服务(待实现) │ ├── order-service/ # 订单服务(待实现) │ ├── inventory-service/ # 库存服务(待实现) │ ├── finance-service/ # 财务服务(待实现) │ ├── admin-service/ # 总控服务(待实现) │ ├── file-service/ # 文件服务(待实现) │ └── notification-service/ # 通知服务(待实现) └── infrastructure/ # 基础设施配置 ``` ## 开发流程 ### 1. 创建新服务 ```bash # 1. 在services目录下创建新服务目录 mkdir -p services/new-service/src/main/java/com/erp/newservice # 2. 复制user-service的pom.xml并修改artifactId # 3. 创建Spring Boot主类 # 4. 配置application.yml # 5. 在父pom.xml中添加模块 ``` ### 2. 代码规范 - 使用Lombok减少样板代码 - 使用MapStruct进行对象转换 - 使用MyBatis Plus进行数据访问 - 遵循RESTful API设计规范 - 使用Swagger/OpenAPI生成API文档 ### 3. 数据库开发 ```java // 实体类示例 @Data @TableName("table_name") public class Entity { @TableId(type = IdType.AUTO) private Long id; @TableField(fill = FieldFill.INSERT) private LocalDateTime createdAt; } // Repository接口 @Mapper public interface EntityRepository extends BaseMapper { // 自定义查询方法 } // Service实现 @Service public class EntityServiceImpl extends ServiceImpl { // 业务逻辑 } ``` ## 启动服务 ### 1. 编译项目 ```bash # 在项目根目录执行 mvn clean compile ``` ### 2. 启动用户服务 ```bash # 进入用户服务目录 cd services/user-service # 启动服务 mvn spring-boot:run # 或者直接运行主类 java -jar target/user-service-1.0.0-SNAPSHOT.jar ``` ### 3. 验证服务 ```bash # 健康检查 curl http://localhost:8082/user/api/users/health # 获取用户列表 curl http://localhost:8082/user/api/users # 创建用户 curl -X POST http://localhost:8082/user/api/users \ -H "Content-Type: application/json" \ -d '{"username":"test","email":"test@example.com","passwordHash":"password123"}' ``` ## 部署说明 ### 1. 构建Docker镜像 ```bash # 构建所有服务 mvn clean package -DskipTests docker build -t erp-user-service:latest services/user-service/ ``` ### 2. 生产环境部署 ```yaml # Kubernetes部署示例 apiVersion: apps/v1 kind: Deployment metadata: name: user-service spec: replicas: 3 selector: matchLabels: app: user-service template: metadata: labels: app: user-service spec: containers: - name: user-service image: erp-user-service:latest ports: - containerPort: 8082 ``` ## 监控与调试 ### 1. 日志查看 ```bash # 查看服务日志 tail -f logs/user-service.log # 查看Docker容器日志 docker-compose logs -f user-service ``` ### 2. 性能监控 - SkyWalking: http://localhost:8081 (链路追踪) - Prometheus: http://localhost:9090 (指标监控) - Grafana: http://localhost:3000 (数据可视化) ### 3. 调试工具 - Arthas: Java诊断工具 - JConsole: JVM监控 - VisualVM: 性能分析 ## 注意事项 1. **服务发现**: 所有服务需要注册到Nacos 2. **配置管理**: 使用Nacos Config管理配置 3. **分布式事务**: 使用Seata处理跨服务事务 4. **消息队列**: 使用RocketMQ进行异步通信 5. **链路追踪**: 集成SkyWalking进行全链路追踪