From 3cf06f6c56dbc30943c641e129e49f242d053624 Mon Sep 17 00:00:00 2001 From: igor Date: Fri, 21 Feb 2025 21:14:09 +0500 Subject: [PATCH] + --- pom.xml | 15 +++--- .../java/org/ccalm/dbms/MainController.java | 54 ++++++++++++++++--- .../java/org/ccalm/dbms/SpringContext.java | 19 +++++++ 3 files changed, 76 insertions(+), 12 deletions(-) create mode 100644 src/main/java/org/ccalm/dbms/SpringContext.java diff --git a/pom.xml b/pom.xml index 46dd2cd..d12b9ea 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.boot spring-boot-starter-parent - 3.3.3 + 3.4.2 org.ccalm @@ -33,23 +33,19 @@ org.springframework.boot spring-boot-starter-web - 3.3.3 org.springframework.boot spring-boot-starter-data-redis - 3.3.3 org.springframework.boot spring-boot-starter-test - 3.3.3 test org.springframework.boot spring-boot-starter-jdbc - 3.3.3 org.postgresql @@ -75,7 +71,7 @@ org.xerial sqlite-jdbc - 3.36.0.1 + 3.41.2.2 com.zaxxer @@ -111,6 +107,13 @@ org.springframework.boot spring-boot-maven-plugin + + + + build-info + + + org.apache.maven.plugins diff --git a/src/main/java/org/ccalm/dbms/MainController.java b/src/main/java/org/ccalm/dbms/MainController.java index 883a71c..d479894 100644 --- a/src/main/java/org/ccalm/dbms/MainController.java +++ b/src/main/java/org/ccalm/dbms/MainController.java @@ -1,15 +1,24 @@ package org.ccalm.dbms; import com.zaxxer.hikari.HikariDataSource; +import org.json.JSONException; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationContext; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; + +import java.io.InputStream; +import java.util.Properties; +import java.util.Set; +import java.util.stream.Collectors; @Controller public class MainController { @@ -26,13 +35,46 @@ public class MainController { @RequestMapping(value = "/",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json;charset=utf-8") @ResponseBody - public String index(Model model, @RequestParam(required=false,name="lng",defaultValue = "1") String language_id) { + public ResponseEntity index() { JSONObject json = new JSONObject(); - json.put("error_code",0); - json.put("error_message","Application name: "+application_name); - //json.put("active_connections",dataSource.getHikariPoolMXBean().getActiveConnections()); - //json.put("idle_connections",dataSource.getHikariPoolMXBean().getIdleConnections()); - return json.toString(); + try { + json.put("error_code",0); + json.put("error_message",""); + json.put("error_marker",(String)null); + String buildDate=""; + //String buildVersion=""; + try { + InputStream inputStream = MainController.class.getClassLoader().getResourceAsStream("META-INF/build-info.properties"); + if (inputStream != null) { + Properties properties = new Properties(); + properties.load(inputStream); + buildDate = properties.getProperty("build.time"); + //buildVersion = properties.getProperty("build.version"); + } + } catch (Exception e) { + e.printStackTrace(); + } + json.put("build_date",buildDate); + //json.put("build_version",buildVersion); + json.put("name",application_name); + //json.put("active_connections",dataSource.getHikariPoolMXBean().getActiveConnections()); + //json.put("idle_connections",dataSource.getHikariPoolMXBean().getIdleConnections()); + + // Вывод всех зарегистрированных маршрутов в системе + ApplicationContext context = SpringContext.getApplicationContext(); + if (context != null) { + RequestMappingHandlerMapping mapping = context.getBean(RequestMappingHandlerMapping.class); + Set endpoints = mapping.getHandlerMethods().keySet().stream() + .map(info -> info.toString()) + .collect(Collectors.toSet()); + System.out.println("=== Registered API endpoints ==="); + endpoints.forEach(System.out::println); + } + + } catch (JSONException e) { + throw new RuntimeException(e); + } + return ResponseEntity.ok(json.toString()); } } diff --git a/src/main/java/org/ccalm/dbms/SpringContext.java b/src/main/java/org/ccalm/dbms/SpringContext.java new file mode 100644 index 0000000..5b2e491 --- /dev/null +++ b/src/main/java/org/ccalm/dbms/SpringContext.java @@ -0,0 +1,19 @@ +package org.ccalm.dbms; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +@Component +public class SpringContext implements ApplicationContextAware { + private static ApplicationContext context; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + context = applicationContext; + } + + public static ApplicationContext getApplicationContext() { + return context; + } +}