From dd3633c6b27306e3b1466f25c411432b78512f08 Mon Sep 17 00:00:00 2001 From: chenyuan Date: Mon, 3 Aug 2026 11:11:59 +0800 Subject: [PATCH] feat: add operations configuration and DDD base types --- README.md | 5 +++++ .../domain/model/IssuanceApplicationId.java | 4 ++++ .../digitalrmb/shared/config/OpenApiConfig.java | 16 ++++++++++++++++ .../digitalrmb/shared/domain/DomainEvent.java | 4 ++++ src/main/resources/application.yml | 8 ++++++++ 5 files changed, 37 insertions(+) create mode 100644 README.md create mode 100644 src/main/java/com/yau/digitalrmb/issuance/domain/model/IssuanceApplicationId.java create mode 100644 src/main/java/com/yau/digitalrmb/shared/config/OpenApiConfig.java create mode 100644 src/main/java/com/yau/digitalrmb/shared/domain/DomainEvent.java diff --git a/README.md b/README.md new file mode 100644 index 0000000..985bf75 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# 数字人民币教学仿真后端 + +Java 17 / Spring Boot 4.1 / MySQL 8 / MyBatis-Plus DDD 脚手架。 + +设置 `DIGITAL_RMB_DB_URL`、`DIGITAL_RMB_DB_USERNAME`、`DIGITAL_RMB_DB_PASSWORD`、`DIGITAL_RMB_JWT_SECRET`(至少 64 字符)、`DIGITAL_RMB_BOOTSTRAP_ADMIN_USERNAME`、`DIGITAL_RMB_BOOTSTRAP_ADMIN_PASSWORD` 后运行 `mvn spring-boot:run`。测试使用内存 H2:`mvn test`。 diff --git a/src/main/java/com/yau/digitalrmb/issuance/domain/model/IssuanceApplicationId.java b/src/main/java/com/yau/digitalrmb/issuance/domain/model/IssuanceApplicationId.java new file mode 100644 index 0000000..842d622 --- /dev/null +++ b/src/main/java/com/yau/digitalrmb/issuance/domain/model/IssuanceApplicationId.java @@ -0,0 +1,4 @@ +package com.yau.digitalrmb.issuance.domain.model; +import java.util.Objects; +import java.util.UUID; +public record IssuanceApplicationId(UUID value) { public IssuanceApplicationId { Objects.requireNonNull(value, "value must not be null"); } } diff --git a/src/main/java/com/yau/digitalrmb/shared/config/OpenApiConfig.java b/src/main/java/com/yau/digitalrmb/shared/config/OpenApiConfig.java new file mode 100644 index 0000000..e696c03 --- /dev/null +++ b/src/main/java/com/yau/digitalrmb/shared/config/OpenApiConfig.java @@ -0,0 +1,16 @@ +package com.yau.digitalrmb.shared.config; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.info.Info; +import io.swagger.v3.oas.models.security.SecurityScheme; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class OpenApiConfig { + @Bean + OpenAPI openAPI() { + return new OpenAPI().info(new Info().title("数字人民币教学仿真后端").version("0.1.0")) + .schemaRequirement("bearerAuth", new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme("bearer").bearerFormat("JWT")); + } +} diff --git a/src/main/java/com/yau/digitalrmb/shared/domain/DomainEvent.java b/src/main/java/com/yau/digitalrmb/shared/domain/DomainEvent.java new file mode 100644 index 0000000..2c33f47 --- /dev/null +++ b/src/main/java/com/yau/digitalrmb/shared/domain/DomainEvent.java @@ -0,0 +1,4 @@ +package com.yau.digitalrmb.shared.domain; +import java.time.Instant; +import java.util.UUID; +public interface DomainEvent { UUID eventId(); Instant occurredAt(); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 7de7061..656b54e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -16,3 +16,11 @@ security: bootstrap-admin: username: ${DIGITAL_RMB_BOOTSTRAP_ADMIN_USERNAME} password: ${DIGITAL_RMB_BOOTSTRAP_ADMIN_PASSWORD} +management: + endpoints: + web: + exposure: + include: health,info +springdoc: + swagger-ui: + enabled: false