feat: enable Swagger in development

master
chenyuan 4 weeks ago
parent dd3633c6b2
commit 7e8d4e95b3

@ -3,3 +3,5 @@
Java 17 / Spring Boot 4.1 / MySQL 8 / MyBatis-Plus DDD 脚手架。 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`。 设置 `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`。
开发时以 `--spring.profiles.active=dev` 启动,控制台会打印 Swagger UI 地址:`http://localhost:8080/swagger-ui/index.html`;生产默认关闭 Swagger UI。

@ -0,0 +1,30 @@
package com.yau.digitalrmb.shared.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
@Component
public class SwaggerStartupLogger {
private static final Logger LOGGER = LoggerFactory.getLogger(SwaggerStartupLogger.class);
private final Environment environment;
public SwaggerStartupLogger(Environment environment) {
this.environment = environment;
}
@EventListener(ApplicationReadyEvent.class)
public void printSwaggerAddresses() {
if (!environment.getProperty("springdoc.swagger-ui.enabled", Boolean.class, false)) {
return;
}
String port = environment.getProperty("local.server.port", environment.getProperty("server.port", "8080"));
String contextPath = environment.getProperty("server.servlet.context-path", "");
String baseUrl = "http://localhost:" + port + contextPath;
LOGGER.info("Swagger UI: {}/swagger-ui/index.html", baseUrl);
LOGGER.info("OpenAPI JSON: {}/v3/api-docs", baseUrl);
}
}

@ -0,0 +1,3 @@
springdoc:
swagger-ui:
enabled: true
Loading…
Cancel
Save