2525package org .springdoc .core .configuration ;
2626
2727import java .util .List ;
28+ import java .util .Set ;
2829
29- import org .springdoc .core .conditions .SpecPropertiesCondition ;
3030import org .springdoc .core .customizers .SpecPropertiesCustomizer ;
3131import org .springdoc .core .models .GroupedOpenApi ;
32+ import org .springdoc .core .properties .SpringDocConfigProperties ;
33+ import org .springdoc .core .properties .SpringDocConfigProperties .GroupConfig ;
3234
3335import org .springframework .beans .factory .config .BeanPostProcessor ;
3436import org .springframework .boot .autoconfigure .condition .ConditionalOnBean ;
3537import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
3638import org .springframework .context .annotation .Bean ;
37- import org .springframework .context .annotation .Conditional ;
3839import org .springframework .context .annotation .Configuration ;
3940import org .springframework .context .annotation .Lazy ;
40- import org .springframework .core .env .PropertyResolver ;
4141
4242/**
4343 * The type Spring doc specification string properties configuration.
4747 */
4848@ Lazy (false )
4949@ Configuration (proxyBeanMethods = false )
50- @ Conditional (SpecPropertiesCondition .class )
5150@ ConditionalOnBean (SpringDocConfiguration .class )
5251public class SpringDocSpecPropertiesConfiguration {
5352
@@ -61,9 +60,9 @@ public class SpringDocSpecPropertiesConfiguration {
6160 @ ConditionalOnMissingBean
6261 @ Lazy (false )
6362 SpecPropertiesCustomizer specificationStringPropertiesCustomizer (
64- PropertyResolver propertyResolverUtils
63+ SpringDocConfigProperties springDocConfigProperties
6564 ) {
66- return new SpecPropertiesCustomizer (propertyResolverUtils );
65+ return new SpecPropertiesCustomizer (springDocConfigProperties );
6766 }
6867
6968 /**
@@ -76,9 +75,9 @@ SpecPropertiesCustomizer specificationStringPropertiesCustomizer(
7675 @ ConditionalOnMissingBean
7776 @ Lazy (false )
7877 SpecificationStringPropertiesCustomizerBeanPostProcessor specificationStringPropertiesCustomizerBeanPostProcessor (
79- PropertyResolver propertyResolverUtils
78+ SpringDocConfigProperties springDocConfigProperties
8079 ) {
81- return new SpecificationStringPropertiesCustomizerBeanPostProcessor (propertyResolverUtils );
80+ return new SpecificationStringPropertiesCustomizerBeanPostProcessor (springDocConfigProperties );
8281 }
8382
8483
@@ -87,20 +86,25 @@ SpecificationStringPropertiesCustomizerBeanPostProcessor specificationStringProp
8786 */
8887 private static class SpecificationStringPropertiesCustomizerBeanPostProcessor implements BeanPostProcessor {
8988
90- private final PropertyResolver propertyResolverUtils ;
89+ private final SpringDocConfigProperties springDocConfigProperties ;
9190
9291 public SpecificationStringPropertiesCustomizerBeanPostProcessor (
93- PropertyResolver propertyResolverUtils
92+ SpringDocConfigProperties springDocConfigProperties
9493 ) {
95- this .propertyResolverUtils = propertyResolverUtils ;
94+ this .springDocConfigProperties = springDocConfigProperties ;
9695 }
9796
9897 @ Override
9998 public Object postProcessAfterInitialization (Object bean , String beanName ) {
10099 if (bean instanceof GroupedOpenApi groupedOpenApi ) {
101- groupedOpenApi .addAllOpenApiCustomizer (List .of (new SpecPropertiesCustomizer (
102- propertyResolverUtils , groupedOpenApi .getGroup ()
103- )));
100+ Set <GroupConfig > groupConfigs = springDocConfigProperties .getGroupConfigs ();
101+ for (GroupConfig groupConfig : groupConfigs ) {
102+ if (groupConfig .getGroup ().equals (groupedOpenApi .getGroup ())) {
103+ groupedOpenApi .addAllOpenApiCustomizer (List .of (new SpecPropertiesCustomizer (
104+ groupConfig .getOpenApi ()
105+ )));
106+ }
107+ }
104108 }
105109 return bean ;
106110 }
0 commit comments