From b642d244b6df736ecd390368a9ffff72ddad56e5 Mon Sep 17 00:00:00 2001
From: ludc <pUXmgxCf6A>
Date: 星期三, 17 五月 2023 21:57:11 +0800
Subject: [PATCH] 以及发布webservice接口功能搭建,将通通用接口移植过来

---
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ApplicationContextProvider.java |   99 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 99 insertions(+), 0 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ApplicationContextProvider.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ApplicationContextProvider.java
index e69de29..7fedeb5 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ApplicationContextProvider.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/util/ApplicationContextProvider.java
@@ -0,0 +1,99 @@
+package com.vci.ubcs.starter.web.util;
+
+import com.vci.ubcs.starter.web.config.AppAutoConfigure;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * spring鐨勪笂涓嬫枃宸ュ叿锛�
+ * 娉ㄦ剰springmvc涓殑controller涓嶅簲璇ュ湪杩欓噷鑾峰彇锛屽洜涓簊pringmvc鍙簲璇ヨ鍓嶇璋冪敤
+ * 娌℃湁浣跨敤springboot鐨刴ain鍑芥暟閲岃缃苟鑾峰彇鏄洜涓哄彲鑳戒細璁╁涓湇鍔″悎骞跺埌涓�璧峰惎鍔�
+ * @author weidy
+ * @date 2019/10/31 9:02 AM
+ */
+@RestController
+@RequestMapping("/application")
+public class ApplicationContextProvider implements ApplicationContextAware {
+
+    /**
+     * 鏈嶅姟鐨勯厤缃�
+     */
+    @Autowired
+    private AppAutoConfigure appAutoConfigure;
+
+    /**
+     * 搴旂敤鐨勪笂涓嬫枃
+     */
+    private static ApplicationContext applicationContext ;
+
+    /**
+     * 璁剧疆搴旂敤鐨勪笂涓嬫枃
+     * @param applicationContext 涓婁笅鏂�
+     * @throws BeansException 鍑虹幇閿欒鏃堕渶瑕佹姏鍑哄紓甯哥粰spring瀹瑰櫒
+     */
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        ApplicationContextProvider.applicationContext = applicationContext;
+    }
+
+    /**
+     * 鑾峰彇搴旂敤鐨勪笂涓嬫枃
+     * @return 涓婁笅鏂�
+     */
+    public static ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    /**
+     * 鑾峰彇瀵硅薄
+     * @param name bean鐨勫悕绉�
+     * @return Object bean鐨勫璞�
+     * @throws BeansException 濡傛灉涓嶅瓨鍦ㄤ細鎶涘嚭寮傚父
+     */
+    public static Object getBean(String name) throws BeansException {
+        return applicationContext.getBean(name);
+    }
+
+    /**
+     * 鑾峰彇瀵硅薄
+     * @param c bean鐨勬帴鍙g被
+     * @param <T> bean鎵�灞炵被鐨勭被鍨�
+     * @return bean瀵硅薄
+     * @throws BeansException 濡傛灉涓嶅瓨鍦ㄤ細鎶涘嚭寮傚父
+     */
+    public static <T> T getBean(Class<T> c) throws BeansException{
+        return applicationContext.getBean(c);
+    }
+
+    /**
+     * 鍏虫満
+     * @return 鎵ц瀹屾垚
+     */
+    @PostMapping("/shutDownContext")
+    public R shutDownContext(String privateKey){
+        if( appAutoConfigure.getPrivateTokenKey().equalsIgnoreCase(privateKey)) {
+            ConfigurableApplicationContext ctx = (ConfigurableApplicationContext) applicationContext;
+            ctx.close();
+            return R.success("鍏抽棴鏈嶅姟鎴愬姛");
+        }else{
+            return  R.fail("鎮ㄦ病鏈夋潈闄愬叧闂湇鍔�");
+        }
+    }
+
+    /**
+     * 妫�鏌ユ槸鍚﹀畬鎴�
+     * @return 璋冪敤灏辫鏄庢垚鍔熶簡
+     */
+    @PostMapping("/checkOnline")
+    public R checkOnline(){
+        return R.success("鍚姩瀹屾垚");
+    }
+
+}

--
Gitblit v1.9.3