Option One
Implement BeanDefinitionRegistryPostProcessor
the interface and postProcessBeanDefinitionRegistry
manually register it in the method
/**
* 手动注册swagger docket bean
*/
@Override
public void postProcessBeanDefinitionRegistry(@NotNull BeanDefinitionRegistry registry) throws BeansException {
Map<String, String> basePackages = this.swaggerProperties.getBasePackages();
basePackages.forEach((key, value) ->{
// 创建Bean定义
RootBeanDefinition bean = new RootBeanDefinition(GroupedOpenApi.class,()->this.createApi(key,value));
// 注册Bean定义
registry.registerBeanDefinition(key+"Api", bean);
} );
}
If you want to read parameters, you need to obtain environment variables to read. At this time, property injection has not yet started, and there is no way to read by injecting parameter configuration objects. implement the EnvironmentAware
interface,
/**
* 获取环境变量并设置到swaggerProperties对象中
*/
@Override
public void setEnvironment(@NotNull Environment environment) {
// 从环境变量中根据指定前缀获取对应的参数配置类
BindResult<SwaggerProperties> bind = Binder.get(environment).bind(swaggerPropertiesPrefix, SwaggerProperties.class);
this.swaggerProperties = bind.get();
}
Option II
used to refill
{{o.name}}
{{m.name}}