浏览代码

优化`http`模块注册,解决某些场景冲突导致无法启动的问题

mxd 3 年之前
父节点
当前提交
8e1f51a648

+ 6 - 8
magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java

@@ -146,8 +146,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon
 	@Autowired(required = false)
 	private MultipartResolver multipartResolver;
 
-	private final ObjectProvider<RestTemplate> restTemplateProvider;
-
 	private String ALL_CLASS_TXT;
 
 	public MagicAPIAutoConfiguration(MagicAPIProperties properties,
@@ -158,7 +156,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon
 									 ObjectProvider<List<HttpMessageConverter<?>>> httpMessageConvertersProvider,
 									 ObjectProvider<List<ColumnMapperProvider>> columnMapperProvidersProvider,
 									 ObjectProvider<List<MagicFunction>> magicFunctionsProvider,
-									 ObjectProvider<RestTemplate> restTemplateProvider,
 									 ObjectProvider<MagicNotifyService> magicNotifyServiceProvider,
 									 ObjectProvider<AuthorizationInterceptor> authorizationInterceptorProvider,
 									 Environment environment,
@@ -172,7 +169,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon
 		this.httpMessageConvertersProvider = httpMessageConvertersProvider;
 		this.columnMapperProvidersProvider = columnMapperProvidersProvider;
 		this.magicFunctionsProvider = magicFunctionsProvider;
-		this.restTemplateProvider = restTemplateProvider;
 		this.magicNotifyServiceProvider = magicNotifyServiceProvider;
 		this.authorizationInterceptorProvider = authorizationInterceptorProvider;
 		this.environment = environment;
@@ -204,6 +200,12 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon
 		return ALL_CLASS_TXT;
 	}
 
+	@Bean
+	@ConditionalOnMissingBean(HttpModule.class)
+	public HttpModule magicHttpModule(){
+		return new HttpModule(createRestTemplate());
+	}
+
 	/**
 	 * 注入动态数据源
 	 */
@@ -470,10 +472,6 @@ public class MagicAPIAutoConfiguration implements WebMvcConfigurer, WebSocketCon
 			logger.info("注册模块:{} -> {}", module.getModuleName(), module.getClass());
 			MagicResourceLoader.addModule(module.getModuleName(), module);
 		});
-		if (MagicResourceLoader.loadModule("http") == null) {
-			logger.info("注册模块:{} -> {}", "http", HttpModule.class);
-			MagicResourceLoader.addModule("http", new HttpModule(this.restTemplateProvider.getIfAvailable(this::createRestTemplate)));
-		}
 		MagicResourceLoader.getModuleNames().stream().filter(importModules::contains).forEach(moduleName -> {
 			logger.info("自动导入模块:{}", moduleName);
 			MagicScriptEngine.addDefaultImport(moduleName, MagicResourceLoader.loadModule(moduleName));