Skip to content

Commit 985ede9

Browse files
committed
Improve subclassing support in ConfClassPostPro
Update ConfigurationClassPostProcessor with an additional afterLoadConfiguration method that can be overridden by subclasses. Also add a protected getMetadataReaderFactory() method allowing subclass access to the MetadataReaderFactory.
1 parent 4214688 commit 985ede9

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java

+19
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ public void processConfigBeanDefinitions(BeanDefinitionRegistry registry) {
317317
if (!ConditionalAnnotationHelper.shouldSkip(configurationClass, registry,
318318
this.environment, this.importBeanNameGenerator)) {
319319
reader.loadBeanDefinitionsForConfigurationClass(configurationClass);
320+
afterLoadConfiguration(registry, configurationClass.getBeanName(), configurationClass.getMetadata());
320321
}
321322
}
322323

@@ -332,6 +333,19 @@ public void processConfigBeanDefinitions(BeanDefinitionRegistry registry) {
332333
}
333334
}
334335

336+
/**
337+
* Called immediately after a {@code @Configuration} bean has been loaded. This
338+
* method will be called for all configuration beans, including {@code @Imported}
339+
* configurations. Subclasses can perform additional processing.
340+
* @param registry the registry
341+
* @param beanName the name of the configuration bean
342+
* @param metadata the configuration meta-data
343+
* @since 4.0
344+
*/
345+
protected void afterLoadConfiguration(BeanDefinitionRegistry registry,
346+
String beanName, AnnotationMetadata metadata) {
347+
}
348+
335349
/**
336350
* Post-processes a BeanFactory in search of Configuration class BeanDefinitions;
337351
* any candidates are then enhanced by a {@link ConfigurationClassEnhancer}.
@@ -375,6 +389,11 @@ public void enhanceConfigurationClasses(ConfigurableListableBeanFactory beanFact
375389
}
376390

377391

392+
protected final MetadataReaderFactory getMetadataReaderFactory() {
393+
return metadataReaderFactory;
394+
}
395+
396+
378397
private static class ImportAwareBeanPostProcessor implements PriorityOrdered, BeanFactoryAware, BeanPostProcessor {
379398

380399
private BeanFactory beanFactory;

0 commit comments

Comments
 (0)