Pārlūkot izejas kodu

【代码评审】IoT:插件体系

YunaiV 6 mēneši atpakaļ
vecāks
revīzija
f4ad3e9d2d

+ 0 - 1
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;

+ 1 - 2
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();
 

+ 14 - 15
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;
     }
+
 }

+ 1 - 1
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