/** * Provide a custom {@link BeanNameGenerator} for use with * {@link AnnotatedBeanDefinitionReader} and/or * {@link ClassPathBeanDefinitionScanner}, if any. * <p> * Default is * {@link org.springframework.context.annotation.AnnotationBeanNameGenerator}. * <p> * Any call to this method must occur prior to calls to {@link #register(Class...)} * and/or {@link #scan(String...)}. * @param beanNameGenerator the bean name generator * @see AnnotatedBeanDefinitionReader#setBeanNameGenerator * @see ClassPathBeanDefinitionScanner#setBeanNameGenerator */ public void setBeanNameGenerator(BeanNameGenerator beanNameGenerator) { this.reader.setBeanNameGenerator(beanNameGenerator); this.scanner.setBeanNameGenerator(beanNameGenerator); this.getBeanFactory().registerSingleton( AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR, beanNameGenerator); }
private void registerReactiveWebServerFactory(ApplicationContext parent, AnnotationConfigReactiveWebServerApplicationContext childContext) { try { ConfigurableListableBeanFactory beanFactory = childContext.getBeanFactory(); if (beanFactory instanceof BeanDefinitionRegistry) { BeanDefinitionRegistry registry = (BeanDefinitionRegistry) beanFactory; registry.registerBeanDefinition("ReactiveWebServerFactory", new RootBeanDefinition( determineReactiveWebServerFactoryClass(parent))); } } catch (NoSuchBeanDefinitionException ex) { // Ignore and assume auto-configuration } }