♻️ 重构@EnableOpenApi 注解增加是否是微服务架构属性,方便单体版本使用

This commit is contained in:
lbw committed 2023-01-06 13:18:27 +08:00
1 parent 785acd7d98
commit 2cc49aa479
2 files changed
+18 -6

No files matched your search

@@ -40,6 +40,16 @@ import java.lang.annotation.*;
@PropertySource(value = "classpath:openapi-config.yaml", factory = YamlPropertySourceFactory.class)
public @interface EnableOpenApi {
/**
* 网关路由前缀
* @return String
*/
String value() default "";
/**
* 是否是微服务架构
* @return true
*/
boolean isMicro() default true;
}
@@ -33,13 +33,15 @@ public class OpenAPIDefinitionImportSelector implements ImportBeanDefinitionRegi
registry.registerBeanDefinition("openAPIDefinition", definition.getBeanDefinition());
// 如果是微服务架构则,引入了服务发现声明相关的元数据配置
boolean isMicro = registry.containsBeanDefinition("serviceInstance");
if (isMicro) {
BeanDefinitionBuilder openAPIMetadata = BeanDefinitionBuilder
.genericBeanDefinition(OpenAPIMetadataConfiguration.class);
openAPIMetadata.addPropertyValue("path", value);
registry.registerBeanDefinition("openAPIMetadata", openAPIMetadata.getBeanDefinition());
Object isMicro = annotationAttributes.getOrDefault("isMicro", true);
if (isMicro.equals(false)) {
return;
}
BeanDefinitionBuilder openAPIMetadata = BeanDefinitionBuilder
.genericBeanDefinition(OpenAPIMetadataConfiguration.class);
openAPIMetadata.addPropertyValue("path", value);
registry.registerBeanDefinition("openAPIMetadata", openAPIMetadata.getBeanDefinition());
}
}