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