From f4ad3e9d2d66ba93303ce3c7f70ff0b90527da87 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 26 Jan 2025 17:55:04 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E8=AF=84=E5=AE=A1?= =?UTF-8?q?=E3=80=91IoT=EF=BC=9A=E6=8F=92=E4=BB=B6=E4=BD=93=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../YudaoDeviceDataApiAutoConfiguration.java | 1 - .../http/HttpPluginSpringbootApplication.java | 3 +- .../plugin/http/config/HttpVertxPlugin.java | 29 +++++++++---------- .../src/main/resources/application.yml | 2 +- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-common/src/main/java/cn/iocoder/yudao/module/iot/plugin/common/config/YudaoDeviceDataApiAutoConfiguration.java b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-common/src/main/java/cn/iocoder/yudao/module/iot/plugin/common/config/YudaoDeviceDataApiAutoConfiguration.java index 6ba82ed5dd..2c1554474e 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-common/src/main/java/cn/iocoder/yudao/module/iot/plugin/common/config/YudaoDeviceDataApiAutoConfiguration.java +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-common/src/main/java/cn/iocoder/yudao/module/iot/plugin/common/config/YudaoDeviceDataApiAutoConfiguration.java @@ -18,7 +18,6 @@ import java.time.Duration; @AutoConfiguration public class YudaoDeviceDataApiAutoConfiguration { - // TODO @haohao:这个要不搞个配置类哈 @Value("${iot.device-data.url}") private String deviceDataUrl; diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/HttpPluginSpringbootApplication.java b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/HttpPluginSpringbootApplication.java index 062b01808b..bd64c8bb06 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/HttpPluginSpringbootApplication.java +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/HttpPluginSpringbootApplication.java @@ -20,8 +20,7 @@ public class HttpPluginSpringbootApplication { ConfigurableApplicationContext context = application.run(args); // 手动获取 VertxService 并启动 - // TODO @haohao:可以放在 bean 的 init 里么? - // 会和插件模式冲突 + // TODO @haohao:可以放在 bean 的 init 里么?回复:会和插件模式冲突 @芋艿,测试下 VertxService vertxService = context.getBean(VertxService.class); vertxService.startServer(); diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/HttpVertxPlugin.java b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/HttpVertxPlugin.java index 9cc96ef102..f9a589a246 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/HttpVertxPlugin.java +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/java/cn/iocoder/yudao/module/iot/plugin/http/config/HttpVertxPlugin.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.iot.plugin.http.config; +import cn.hutool.core.lang.Assert; import cn.hutool.extra.spring.SpringUtil; import cn.iocoder.yudao.module.iot.api.device.DeviceDataApi; import lombok.extern.slf4j.Slf4j; @@ -21,62 +22,60 @@ public class HttpVertxPlugin extends SpringPlugin { @Override public void start() { - log.info("[HttpVertxPlugin][start][begin] 开始启动 HttpVertxPlugin 插件..."); - + log.info("[HttpVertxPlugin][HttpVertxPlugin 插件启动开始...]"); try { // 1. 获取插件上下文 ApplicationContext pluginContext = getApplicationContext(); - if (pluginContext == null) { - log.error("[HttpVertxPlugin][start][fail] pluginContext is null, 启动失败!"); - return; - } + Assert.notNull(pluginContext, "pluginContext 不能为空"); // 2. 启动 Vert.x VertxService vertxService = pluginContext.getBean(VertxService.class); vertxService.startServer(); - log.info("[HttpVertxPlugin][start][end] 启动完成"); + log.info("[HttpVertxPlugin][HttpVertxPlugin 插件启动成功...]"); } catch (Exception e) { - log.error("[HttpVertxPlugin][start][exception] 启动过程出现异常!", e); + log.error("[HttpVertxPlugin][HttpVertxPlugin 插件开启动异常...]", e); } } @Override public void stop() { - log.info("[HttpVertxPlugin][stop][begin] 开始停止 HttpVertxPlugin 插件..."); - + log.info("[HttpVertxPlugin][HttpVertxPlugin 插件停止开始...]"); try { + // 停止服务器 ApplicationContext pluginContext = getApplicationContext(); if (pluginContext != null) { - // 停止服务器 VertxService vertxService = pluginContext.getBean(VertxService.class); vertxService.stopServer(); } - log.info("[HttpVertxPlugin][stop][end] 停止完成"); + log.info("[HttpVertxPlugin][HttpVertxPlugin 插件停止成功...]"); } catch (Exception e) { - log.error("[HttpVertxPlugin][stop][exception] 停止过程出现异常!", e); + log.error("[HttpVertxPlugin][HttpVertxPlugin 插件停止异常...]", e); } } @Override protected ApplicationContext createApplicationContext() { + // TODO @haohao:这个加 deviceDataApi 的目的是啥呀? AnnotationConfigApplicationContext pluginContext = new AnnotationConfigApplicationContext() { + @Override protected void prepareRefresh() { // 在刷新容器前注册主程序中的 Bean ConfigurableListableBeanFactory beanFactory = this.getBeanFactory(); DeviceDataApi deviceDataApi = SpringUtil.getBean(DeviceDataApi.class); beanFactory.registerSingleton("deviceDataApi", deviceDataApi); - super.prepareRefresh(); } + }; pluginContext.setClassLoader(getWrapper().getPluginClassLoader()); + // TODO @芋艿:枚举 pluginContext.scan("cn.iocoder.yudao.module.iot.plugin.http.config"); pluginContext.refresh(); - return pluginContext; } + } \ No newline at end of file diff --git a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/resources/application.yml b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/resources/application.yml index 3a64c0f37e..f7f89e3e67 100644 --- a/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/resources/application.yml +++ b/yudao-module-iot/yudao-module-iot-plugins/yudao-module-iot-plugin-http/src/main/resources/application.yml @@ -9,4 +9,4 @@ iot: plugin: http: server: - port: 8092 + port: 8092 \ No newline at end of file