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