4.8 KiB
4.8 KiB
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. 性能监控
- SkyWalking: http://localhost:8081 (链路追踪)
- Prometheus: http://localhost:9090 (指标监控)
- Grafana: http://localhost:3000 (数据可视化)
3. 调试工具
- Arthas: Java诊断工具
- JConsole: JVM监控
- VisualVM: 性能分析
注意事项
- 服务发现: 所有服务需要注册到Nacos
- 配置管理: 使用Nacos Config管理配置
- 分布式事务: 使用Seata处理跨服务事务
- 消息队列: 使用RocketMQ进行异步通信
- 链路追踪: 集成SkyWalking进行全链路追踪