# bank-transfer-java **Repository Path**: hanxianchao66/bank-transfer-java ## Basic Information - **Project Name**: bank-transfer-java - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-06 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 银行转账系统容器化部署项目 **作者**:韩先超 **联系方式,微信 **:15011572657 **版权声明**:代码版权归韩先超所有,禁止在任何网络环境下公开使用或传播。 本项目基于 **Java Spring Boot** 实现银行转账核心业务,并通过 **Docker** 容器化部署与 **Kubernetes** 管理,实现 **高并发、高稳定性、强安全保障** 的转账服务。 --- ##目录结构 ``` bank-transfer-java/ ├── Dockerfile ├── pom.xml ├── settings.xml └── src └── main ├── java │ └── com │ └── bank │ └── transfer │ ├── BankApplication.java │ ├── controller │ │ └── TransferController.java │ ├── service │ │ └── TransferService.java │ ├── model │ │ ├── TransferRequest.java │ │ └── TransferResponse.java │ └── util │ └── LogUtil.java └── resources └── application.yml ``` --- ## 环境准备 ```bash # 安装 Java 17 sudo yum install java-17-openjdk-devel -y sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-17-openjdk/bin/java 1 sudo alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-17-openjdk/bin/javac 1 sudo alternatives --config java sudo alternatives --config javac java -version javac -version export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.17.0.10-1.el8.x86_64 export PATH=$JAVA_HOME/bin:$PATH # 安装 Maven(如果没有安装) sudo yum install maven -y mvn -version # 配置阿里云 Maven 镜像 # 将 settings.xml 放到项目根目录 # Maven 会使用阿里云镜像加速依赖下载 # 进入项目目录,编译项目 cd bank-transfer-java mvn clean package -DskipTests # 可选:上传 SonarQube 分析 mvn sonar:sonar \ -Dsonar.projectKey=bank-transfer-java \ -Dsonar.host.url=http://192.168.40.180:9000 \ -Dsonar.login=44aa0f7a1748f63e8f08f48f7e0348efff665b15 Dockerfile(多阶段构建镜像): # 构建阶段 FROM maven:3.9.6-eclipse-temurin-17-alpine AS builder WORKDIR /app COPY settings.xml /root/.m2/settings.xml COPY pom.xml ./ COPY src ./src RUN mvn clean package -DskipTests # 运行阶段 FROM eclipse-temurin:17-alpine WORKDIR /app COPY --from=builder /app/target/transfer-1.0.0.jar app.jar EXPOSE 8081 ENTRYPOINT ["java","-jar","/app/app.jar"] 构建镜像:docker build -t bank-transfer-service:v1 . 运行测试容器: docker run -d -p 8081:8081 --name bank-transfer bank-transfer-service:v1 # 本地接口测试 curl -X POST http://localhost:8081/api/transfer \ -H "Content-Type: application/json" \ -d '{"fromAccount":"1001","toAccount":"1002","amount":100}' 推送到 Harbor 仓库: # 标记镜像 docker tag bank-transfer-service:v1 192.168.40.62/bank/bank-transfer-service:v1 # 登录 Harbor docker login 192.168.40.62 # 用户:admin,密码:Harbor12345 # 推送镜像 docker push 192.168.40.62/bank/bank-transfer-service:v1 Kubernetes 部署 Deployment 配置: apiVersion: apps/v1 kind: Deployment metadata: name: bank-transfer labels: app: bank-transfer spec: replicas: 1 selector: matchLabels: app: bank-transfer template: metadata: labels: app: bank-transfer spec: containers: - name: bank-transfer image: 192.168.40.62/bank/bank-transfer-service:v1 imagePullPolicy: IfNotPresent ports: - containerPort: 8081 env: - name: JAVA_OPTS value: "-Xms256m -Xmx512m" readinessProbe: httpGet: path: /api/health port: 8081 initialDelaySeconds: 30 periodSeconds: 10 failureThreshold: 3 livenessProbe: httpGet: path: /api/health port: 8081 initialDelaySeconds: 60 periodSeconds: 20 failureThreshold: 3 Service 配置: apiVersion: v1 kind: Service metadata: name: bank-transfer spec: type: NodePort selector: app: bank-transfer ports: - name: http port: 8080 targetPort: 8081 nodePort: 30088 部署命令: kubectl apply -f bank-transfer-deployment.yaml kubectl apply -f bank-transfer-service.yaml # 测试 Kubernetes 服务 curl -X POST http://192.168.40.181:30088/api/transfer \ -H "Content-Type: application/json" \ -d '{"fromAccount":"1001","toAccount":"1002","amount":100}'