From e7148498adb7c03f9f281ac2b9f0d9fd784d6a4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=BF=94?= Date: Fri, 13 Mar 2026 12:49:12 +0800 Subject: [PATCH] feat: create manage-gateway module structure --- novalon-manage-api/manage-gateway/Dockerfile | 9 +++ novalon-manage-api/manage-gateway/pom.xml | 55 +++++++++++++++++++ .../manage/gateway/GatewayApplication.java | 24 ++++++++ .../src/main/resources/application-dev.yml | 13 +++++ .../src/main/resources/application-prod.yml | 13 +++++ .../src/main/resources/application.yml | 42 ++++++++++++++ novalon-manage-api/pom.xml | 6 ++ 7 files changed, 162 insertions(+) create mode 100644 novalon-manage-api/manage-gateway/Dockerfile create mode 100644 novalon-manage-api/manage-gateway/pom.xml create mode 100644 novalon-manage-api/manage-gateway/src/main/java/cn/novalon/manage/gateway/GatewayApplication.java create mode 100644 novalon-manage-api/manage-gateway/src/main/resources/application-dev.yml create mode 100644 novalon-manage-api/manage-gateway/src/main/resources/application-prod.yml create mode 100644 novalon-manage-api/manage-gateway/src/main/resources/application.yml diff --git a/novalon-manage-api/manage-gateway/Dockerfile b/novalon-manage-api/manage-gateway/Dockerfile new file mode 100644 index 0000000..d285685 --- /dev/null +++ b/novalon-manage-api/manage-gateway/Dockerfile @@ -0,0 +1,9 @@ +FROM openjdk:21-jdk-slim + +WORKDIR /app + +COPY manage-gateway/target/manage-gateway-1.0.0.jar app.jar + +EXPOSE 8080 + +ENTRYPOINT ["java", "-jar", "app.jar"] diff --git a/novalon-manage-api/manage-gateway/pom.xml b/novalon-manage-api/manage-gateway/pom.xml new file mode 100644 index 0000000..169ea14 --- /dev/null +++ b/novalon-manage-api/manage-gateway/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + + + cn.novalon.manage + novalon-manage-api + 1.0.0 + + + manage-gateway + jar + + Manage Gateway + Gateway module for Novalon Manage API + + + + org.springframework.boot + spring-boot-starter-webflux + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.cloud + spring-cloud-starter-gateway + 4.1.0 + + + io.micrometer + micrometer-registry-prometheus + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + cn.novalon.manage.gateway.GatewayApplication + + + + + diff --git a/novalon-manage-api/manage-gateway/src/main/java/cn/novalon/manage/gateway/GatewayApplication.java b/novalon-manage-api/manage-gateway/src/main/java/cn/novalon/manage/gateway/GatewayApplication.java new file mode 100644 index 0000000..afdcd88 --- /dev/null +++ b/novalon-manage-api/manage-gateway/src/main/java/cn/novalon/manage/gateway/GatewayApplication.java @@ -0,0 +1,24 @@ +package cn.novalon.manage.gateway; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cloud.gateway.route.RouteLocator; +import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder; +import org.springframework.context.annotation.Bean; + +@SpringBootApplication +public class GatewayApplication { + + public static void main(String[] args) { + SpringApplication.run(GatewayApplication.class, args); + } + + @Bean + public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { + return builder.routes() + .route("manage-app", r -> r + .path("/api/**") + .uri("http://manage-app:8081")) + .build(); + } +} diff --git a/novalon-manage-api/manage-gateway/src/main/resources/application-dev.yml b/novalon-manage-api/manage-gateway/src/main/resources/application-dev.yml new file mode 100644 index 0000000..bbb479e --- /dev/null +++ b/novalon-manage-api/manage-gateway/src/main/resources/application-dev.yml @@ -0,0 +1,13 @@ +spring: + cloud: + gateway: + routes: + - id: manage-app + uri: http://localhost:8081 + predicates: + - Path=/api/** + +logging: + level: + org.springframework.cloud.gateway: TRACE + org.springframework.web.reactive: TRACE diff --git a/novalon-manage-api/manage-gateway/src/main/resources/application-prod.yml b/novalon-manage-api/manage-gateway/src/main/resources/application-prod.yml new file mode 100644 index 0000000..31f06a8 --- /dev/null +++ b/novalon-manage-api/manage-gateway/src/main/resources/application-prod.yml @@ -0,0 +1,13 @@ +spring: + cloud: + gateway: + routes: + - id: manage-app + uri: http://manage-app:8081 + predicates: + - Path=/api/** + +logging: + level: + cn.novalon.manage: INFO + org.springframework.cloud.gateway: INFO diff --git a/novalon-manage-api/manage-gateway/src/main/resources/application.yml b/novalon-manage-api/manage-gateway/src/main/resources/application.yml new file mode 100644 index 0000000..43a1fd8 --- /dev/null +++ b/novalon-manage-api/manage-gateway/src/main/resources/application.yml @@ -0,0 +1,42 @@ +server: + port: 8080 + +spring: + application: + name: manage-gateway + cloud: + gateway: + routes: + - id: manage-app + uri: http://manage-app:8081 + predicates: + - Path=/api/** + default-filters: + - name: Retry + args: + retries: 3 + statuses: BAD_GATEWAY,SERVICE_UNAVAILABLE + methods: GET,POST + backoff: + firstBackoff: 10ms + maxBackoff: 50ms + factor: 2 + basedOnPreviousValue: false + +management: + endpoints: + web: + exposure: + include: health,info,metrics + base-path: /actuator + endpoint: + health: + show-details: always + metrics: + tags: + application: ${spring.application.name} + +logging: + level: + cn.novalon.manage: DEBUG + org.springframework.cloud.gateway: DEBUG diff --git a/novalon-manage-api/pom.xml b/novalon-manage-api/pom.xml index b721d7c..9e5c85e 100644 --- a/novalon-manage-api/pom.xml +++ b/novalon-manage-api/pom.xml @@ -30,6 +30,7 @@ manage-sys + manage-gateway @@ -126,6 +127,11 @@ springdoc-openapi-starter-webflux-ui 2.8.13 + + io.micrometer + micrometer-registry-prometheus + 1.13.4 + org.jacoco jacoco-maven-plugin