public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry registry) { Assert.notNull(annotationMetadata, "AnnotationMetadata must not be null!"); Assert.notNull(registry, "BeanDefinitionRegistry must not be null!"); Assert.notNull(resourceLoader, "ResourceLoader must not be null!"); // Guard against calls for sub-classes if (annotationMetadata.getAnnotationAttributes(getAnnotation().getName()) == null) { return; } AnnotationRepositoryConfigurationSource configurationSource = new AnnotationRepositoryConfigurationSource( annotationMetadata, getAnnotation(), resourceLoader, environment, registry); RepositoryConfigurationExtension extension = getExtension(); RepositoryConfigurationUtils.exposeRegistration(extension, registry, configurationSource); RepositoryConfigurationDelegate delegate = new RepositoryConfigurationDelegate(configurationSource, resourceLoader, environment); delegate.registerRepositoriesIn(registry, extension); }
RepositoryConfigurationUtils.exposeRegistration(extension, registry, configurationSource);
@Nullable public BeanDefinition parse(Element element, ParserContext parser) { XmlReaderContext readerContext = parser.getReaderContext(); try { ResourceLoader resourceLoader = ConfigurationUtils.getRequiredResourceLoader(readerContext); Environment environment = readerContext.getEnvironment(); BeanDefinitionRegistry registry = parser.getRegistry(); XmlRepositoryConfigurationSource configSource = new XmlRepositoryConfigurationSource(element, parser, environment); RepositoryConfigurationDelegate delegate = new RepositoryConfigurationDelegate(configSource, resourceLoader, environment); RepositoryConfigurationUtils.exposeRegistration(extension, registry, configSource); for (BeanComponentDefinition definition : delegate.registerRepositoriesIn(registry, extension)) { readerContext.fireComponentRegistered(definition); } } catch (RuntimeException e) { handleError(e, element, readerContext); } return null; }