【功能完善】IoT: 增强插件启动和停止逻辑,添加异常处理,更新错误码,优化配置文件
This commit is contained in:
@@ -94,6 +94,34 @@
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!-- <plugin>-->
|
||||
<!-- <groupId>org.apache.maven.plugins</groupId>-->
|
||||
<!-- <artifactId>maven-shade-plugin</artifactId>-->
|
||||
<!-- <version>3.6.0</version>-->
|
||||
<!-- <executions>-->
|
||||
<!-- <execution>-->
|
||||
<!-- <phase>package</phase>-->
|
||||
<!-- <goals>-->
|
||||
<!-- <goal>shade</goal>-->
|
||||
<!-- </goals>-->
|
||||
<!-- <configuration>-->
|
||||
<!-- <minimizeJar>true</minimizeJar>-->
|
||||
<!-- </configuration>-->
|
||||
<!-- </execution>-->
|
||||
<!-- </executions>-->
|
||||
<!-- <configuration>-->
|
||||
<!-- <archive>-->
|
||||
<!-- <manifestEntries>-->
|
||||
<!-- <Plugin-Id>${plugin.id}</Plugin-Id>-->
|
||||
<!-- <Plugin-Class>${plugin.class}</Plugin-Class>-->
|
||||
<!-- <Plugin-Version>${plugin.version}</Plugin-Version>-->
|
||||
<!-- <Plugin-Provider>${plugin.provider}</Plugin-Provider>-->
|
||||
<!-- <Plugin-Description>${plugin.description}</Plugin-Description>-->
|
||||
<!-- <Plugin-Dependencies>${plugin.dependencies}</Plugin-Dependencies>-->
|
||||
<!-- </manifestEntries>-->
|
||||
<!-- </archive>-->
|
||||
<!-- </configuration>-->
|
||||
<!-- </plugin>-->
|
||||
|
||||
<!-- 独立模式 -->
|
||||
<plugin>
|
||||
@@ -112,12 +140,6 @@
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
@@ -59,22 +59,13 @@ public class IotHttpVertxPlugin extends SpringPlugin {
|
||||
|
||||
@Override
|
||||
protected ApplicationContext createApplicationContext() {
|
||||
// TODO @haohao:这个加 deviceDataApi 的目的是啥呀?
|
||||
AnnotationConfigApplicationContext pluginContext = new AnnotationConfigApplicationContext() {
|
||||
|
||||
@Override
|
||||
protected void prepareRefresh() {
|
||||
// 在刷新容器前注册主程序中的 Bean
|
||||
ConfigurableListableBeanFactory beanFactory = this.getBeanFactory();
|
||||
IotDeviceUpstreamApi deviceDataApi = SpringUtil.getBean(IotDeviceUpstreamApi.class);
|
||||
beanFactory.registerSingleton("deviceDataApi", deviceDataApi);
|
||||
super.prepareRefresh();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// 创建插件自己的 ApplicationContext
|
||||
AnnotationConfigApplicationContext pluginContext = new AnnotationConfigApplicationContext();
|
||||
// 设置父容器为主应用的 ApplicationContext (确保主应用中提供的类可用)
|
||||
pluginContext.setParent(SpringUtil.getApplicationContext());
|
||||
// 继续使用插件自己的 ClassLoader 以加载插件内部的类
|
||||
pluginContext.setClassLoader(getWrapper().getPluginClassLoader());
|
||||
// TODO @芋艿:枚举
|
||||
// 扫描当前插件的自动配置包
|
||||
pluginContext.scan("cn.iocoder.yudao.module.iot.plugin.http.config");
|
||||
pluginContext.refresh();
|
||||
return pluginContext;
|
||||
|
Reference in New Issue
Block a user