postProcessBeanDefinitionRegistry method

  1. @override
void postProcessBeanDefinitionRegistry(
  1. BeanDefinitionRegistry registry
)
override

Adds, removes or replaces definitions in registry. Runs before every BeanFactoryPostProcessor.postProcessBeanFactory, this processor's own included.

Implementation

@override
void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) {
  final definitions = <String, BeanDefinition<Object>>{
    for (final name in registry.beanDefinitionNames)
      if (_isApplication(registry.getBeanDefinition(name)))
        name: registry.getBeanDefinition(name),
  };
  final kept = keptNames(definitions);
  final removed =
      definitions.keys.where((name) => !kept.contains(name)).toList()
        ..forEach(registry.removeBeanDefinition);
  _log.debug(
    () =>
        'Data slice: ${kept.length} beans of the application kept, '
        '${removed.length} left out: ${removed.join(', ')}',
  );
}