From 0671937ecdbb8017dfa537e3f13e40bf5f46d169 Mon Sep 17 00:00:00 2001 From: siujamo Date: Tue, 26 May 2026 10:18:27 +0800 Subject: [PATCH] feat: add versioning entrypoint --- .../deltaforceguide/config/AppConfig.java | 10 ++++++++ .../controller/VersionController.java | 24 +++++++++++++++++++ .../deltaforceguide/manager/AppManager.java | 23 ++++++++++++++++++ .../properties/AppProperties.java | 9 +++++++ .../deltaforceguide/service/AppService.java | 18 ++++++++++++++ 5 files changed, 84 insertions(+) create mode 100644 src/main/java/com/onixbyte/deltaforceguide/config/AppConfig.java create mode 100644 src/main/java/com/onixbyte/deltaforceguide/controller/VersionController.java create mode 100644 src/main/java/com/onixbyte/deltaforceguide/manager/AppManager.java create mode 100644 src/main/java/com/onixbyte/deltaforceguide/properties/AppProperties.java create mode 100644 src/main/java/com/onixbyte/deltaforceguide/service/AppService.java diff --git a/src/main/java/com/onixbyte/deltaforceguide/config/AppConfig.java b/src/main/java/com/onixbyte/deltaforceguide/config/AppConfig.java new file mode 100644 index 0000000..32ec283 --- /dev/null +++ b/src/main/java/com/onixbyte/deltaforceguide/config/AppConfig.java @@ -0,0 +1,10 @@ +package com.onixbyte.deltaforceguide.config; + +import com.onixbyte.deltaforceguide.properties.AppProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@EnableConfigurationProperties(AppProperties.class) +public class AppConfig { +} diff --git a/src/main/java/com/onixbyte/deltaforceguide/controller/VersionController.java b/src/main/java/com/onixbyte/deltaforceguide/controller/VersionController.java new file mode 100644 index 0000000..a73b43c --- /dev/null +++ b/src/main/java/com/onixbyte/deltaforceguide/controller/VersionController.java @@ -0,0 +1,24 @@ +package com.onixbyte.deltaforceguide.controller; + +import com.onixbyte.deltaforceguide.service.AppService; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/versions") +public class VersionController { + + private final AppService appService; + + public VersionController(AppService appService) { + this.appService = appService; + } + + @Operation(description = "获取当前应用版本号") + @GetMapping + public String getVersion() { + return appService.getVersion(); + } +} diff --git a/src/main/java/com/onixbyte/deltaforceguide/manager/AppManager.java b/src/main/java/com/onixbyte/deltaforceguide/manager/AppManager.java new file mode 100644 index 0000000..64f8ddd --- /dev/null +++ b/src/main/java/com/onixbyte/deltaforceguide/manager/AppManager.java @@ -0,0 +1,23 @@ +package com.onixbyte.deltaforceguide.manager; + +import com.onixbyte.deltaforceguide.properties.AppProperties; +import org.springframework.stereotype.Component; + +@Component +public class AppManager { + + private final AppProperties appProperties; + + public AppManager(AppProperties appProperties) { + this.appProperties = appProperties; + } + + /** + * Retrieves the application version. + * + * @return the version string of this application + */ + public String getVersion() { + return appProperties.version(); + } +} diff --git a/src/main/java/com/onixbyte/deltaforceguide/properties/AppProperties.java b/src/main/java/com/onixbyte/deltaforceguide/properties/AppProperties.java new file mode 100644 index 0000000..79b056c --- /dev/null +++ b/src/main/java/com/onixbyte/deltaforceguide/properties/AppProperties.java @@ -0,0 +1,9 @@ +package com.onixbyte.deltaforceguide.properties; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +@ConfigurationProperties(prefix = "app.common") +public record AppProperties( + String version +) { +} diff --git a/src/main/java/com/onixbyte/deltaforceguide/service/AppService.java b/src/main/java/com/onixbyte/deltaforceguide/service/AppService.java new file mode 100644 index 0000000..68f50bd --- /dev/null +++ b/src/main/java/com/onixbyte/deltaforceguide/service/AppService.java @@ -0,0 +1,18 @@ +package com.onixbyte.deltaforceguide.service; + +import com.onixbyte.deltaforceguide.manager.AppManager; +import org.springframework.stereotype.Service; + +@Service +public class AppService { + + private final AppManager appManager; + + public AppService(AppManager appManager) { + this.appManager = appManager; + } + + public String getVersion() { + return appManager.getVersion(); + } +}