25
25
package org .springdoc .core .configuration ;
26
26
27
27
import java .util .List ;
28
+ import java .util .Set ;
28
29
29
- import org .springdoc .core .conditions .SpecPropertiesCondition ;
30
30
import org .springdoc .core .customizers .SpecPropertiesCustomizer ;
31
31
import org .springdoc .core .models .GroupedOpenApi ;
32
+ import org .springdoc .core .properties .SpringDocConfigProperties ;
33
+ import org .springdoc .core .properties .SpringDocConfigProperties .GroupConfig ;
32
34
33
35
import org .springframework .beans .factory .config .BeanPostProcessor ;
34
36
import org .springframework .boot .autoconfigure .condition .ConditionalOnBean ;
35
37
import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
36
38
import org .springframework .context .annotation .Bean ;
37
- import org .springframework .context .annotation .Conditional ;
38
39
import org .springframework .context .annotation .Configuration ;
39
40
import org .springframework .context .annotation .Lazy ;
40
- import org .springframework .core .env .PropertyResolver ;
41
41
42
42
/**
43
43
* The type Spring doc specification string properties configuration.
47
47
*/
48
48
@ Lazy (false )
49
49
@ Configuration (proxyBeanMethods = false )
50
- @ Conditional (SpecPropertiesCondition .class )
51
50
@ ConditionalOnBean (SpringDocConfiguration .class )
52
51
public class SpringDocSpecPropertiesConfiguration {
53
52
@@ -61,9 +60,9 @@ public class SpringDocSpecPropertiesConfiguration {
61
60
@ ConditionalOnMissingBean
62
61
@ Lazy (false )
63
62
SpecPropertiesCustomizer specificationStringPropertiesCustomizer (
64
- PropertyResolver propertyResolverUtils
63
+ SpringDocConfigProperties springDocConfigProperties
65
64
) {
66
- return new SpecPropertiesCustomizer (propertyResolverUtils );
65
+ return new SpecPropertiesCustomizer (springDocConfigProperties );
67
66
}
68
67
69
68
/**
@@ -76,9 +75,9 @@ SpecPropertiesCustomizer specificationStringPropertiesCustomizer(
76
75
@ ConditionalOnMissingBean
77
76
@ Lazy (false )
78
77
SpecificationStringPropertiesCustomizerBeanPostProcessor specificationStringPropertiesCustomizerBeanPostProcessor (
79
- PropertyResolver propertyResolverUtils
78
+ SpringDocConfigProperties springDocConfigProperties
80
79
) {
81
- return new SpecificationStringPropertiesCustomizerBeanPostProcessor (propertyResolverUtils );
80
+ return new SpecificationStringPropertiesCustomizerBeanPostProcessor (springDocConfigProperties );
82
81
}
83
82
84
83
@@ -87,20 +86,25 @@ SpecificationStringPropertiesCustomizerBeanPostProcessor specificationStringProp
87
86
*/
88
87
private static class SpecificationStringPropertiesCustomizerBeanPostProcessor implements BeanPostProcessor {
89
88
90
- private final PropertyResolver propertyResolverUtils ;
89
+ private final SpringDocConfigProperties springDocConfigProperties ;
91
90
92
91
public SpecificationStringPropertiesCustomizerBeanPostProcessor (
93
- PropertyResolver propertyResolverUtils
92
+ SpringDocConfigProperties springDocConfigProperties
94
93
) {
95
- this .propertyResolverUtils = propertyResolverUtils ;
94
+ this .springDocConfigProperties = springDocConfigProperties ;
96
95
}
97
96
98
97
@ Override
99
98
public Object postProcessAfterInitialization (Object bean , String beanName ) {
100
99
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
+ }
104
108
}
105
109
return bean ;
106
110
}
0 commit comments