erp-java/DEVELOPMENT.md

4.8 KiB
Raw Permalink Blame History

ERP Java 后端开发指南

环境准备

1. 开发环境要求

  • JDK 17+
  • Maven 3.8+
  • Docker 20.10+
  • IDE: IntelliJ IDEA / VS Code

2. 启动基础设施

# 进入项目根目录
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. 初始化数据库

# 数据库已通过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. 创建新服务

# 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. 数据库开发

// 实体类示例
@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<Entity> {
    // 自定义查询方法
}

// Service实现
@Service
public class EntityServiceImpl extends ServiceImpl<EntityRepository, Entity> {
    // 业务逻辑
}

启动服务

1. 编译项目

# 在项目根目录执行
mvn clean compile

2. 启动用户服务

# 进入用户服务目录
cd services/user-service

# 启动服务
mvn spring-boot:run

# 或者直接运行主类
java -jar target/user-service-1.0.0-SNAPSHOT.jar

3. 验证服务

# 健康检查
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镜像

# 构建所有服务
mvn clean package -DskipTests
docker build -t erp-user-service:latest services/user-service/

2. 生产环境部署

# 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. 日志查看

# 查看服务日志
tail -f logs/user-service.log

# 查看Docker容器日志
docker-compose logs -f user-service

2. 性能监控

3. 调试工具

  • Arthas: Java诊断工具
  • JConsole: JVM监控
  • VisualVM: 性能分析

注意事项

  1. 服务发现: 所有服务需要注册到Nacos
  2. 配置管理: 使用Nacos Config管理配置
  3. 分布式事务: 使用Seata处理跨服务事务
  4. 消息队列: 使用RocketMQ进行异步通信
  5. 链路追踪: 集成SkyWalking进行全链路追踪