AnnotatedBeanDefinitionReader reader = getAnnotatedBeanDefinitionReader( beanFactory); ClassPathBeanDefinitionScanner scanner = getClassPathBeanDefinitionScanner( beanFactory); applyBeanNameGenerator(beanFactory, reader, scanner); applyScopeMetadataResolver(reader, scanner); loadBeanDefinitions(reader, scanner);
private void register(AnnotatedBeanDefinitionReader reader, String configLocation) throws ClassNotFoundException, LinkageError { Class<?> clazz = ClassUtils.forName(configLocation, getClassLoader()); if (this.logger.isInfoEnabled()) { this.logger.info("Successfully resolved class for [" + configLocation + "]"); } reader.register(clazz); }
private void loadBeanDefinitions(AnnotatedBeanDefinitionReader reader, ClassPathBeanDefinitionScanner scanner) throws LinkageError { if (!this.annotatedClasses.isEmpty()) { registerAnnotatedClasses(reader); } if (!this.basePackages.isEmpty()) { scanBasePackages(scanner); } String[] configLocations = getConfigLocations(); if (configLocations != null) { registerConfigLocations(reader, scanner, configLocations); } }
/** * Build an {@link AnnotatedBeanDefinitionReader} for the given bean factory. * <p> * This should be pre-configured with the {@code Environment} (if desired) but not * with a {@code BeanNameGenerator} or {@code ScopeMetadataResolver} yet. * @param beanFactory the bean factory to load bean definitions into * @return the annotated bean definition reader * @see #getEnvironment() * @see #getBeanNameGenerator() * @see #getScopeMetadataResolver() */ protected AnnotatedBeanDefinitionReader getAnnotatedBeanDefinitionReader( DefaultListableBeanFactory beanFactory) { return new AnnotatedBeanDefinitionReader(beanFactory, getEnvironment()); }
private void applyScopeMetadataResolver(AnnotatedBeanDefinitionReader reader, ClassPathBeanDefinitionScanner scanner) { ScopeMetadataResolver scopeMetadataResolver = getScopeMetadataResolver(); if (scopeMetadataResolver != null) { reader.setScopeMetadataResolver(scopeMetadataResolver); scanner.setScopeMetadataResolver(scopeMetadataResolver); } }
private void applyBeanNameGenerator(DefaultListableBeanFactory beanFactory, AnnotatedBeanDefinitionReader reader, ClassPathBeanDefinitionScanner scanner) { BeanNameGenerator beanNameGenerator = getBeanNameGenerator(); if (beanNameGenerator != null) { reader.setBeanNameGenerator(beanNameGenerator); scanner.setBeanNameGenerator(beanNameGenerator); beanFactory.registerSingleton( AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR, beanNameGenerator); } }
/** * Build a {@link ClassPathBeanDefinitionScanner} for the given bean factory. * <p> * This should be pre-configured with the {@code Environment} (if desired) but not * with a {@code BeanNameGenerator} or {@code ScopeMetadataResolver} yet. * @param beanFactory the bean factory to load bean definitions into * @return the class path bean definition scanner * @see #getEnvironment() * @see #getBeanNameGenerator() * @see #getScopeMetadataResolver() */ protected ClassPathBeanDefinitionScanner getClassPathBeanDefinitionScanner( DefaultListableBeanFactory beanFactory) { return new ClassPathBeanDefinitionScanner(beanFactory, true, getEnvironment()); }