Example usage for org.springframework.data.repository.config RepositoryBeanDefinitionBuilder build

List of usage examples for org.springframework.data.repository.config RepositoryBeanDefinitionBuilder build

Introduction

In this page you can find the example usage for org.springframework.data.repository.config RepositoryBeanDefinitionBuilder build.

Prototype

public BeanDefinitionBuilder build(RepositoryConfiguration<?> configuration) 

Source Link

Document

Builds a new BeanDefinitionBuilder from the given BeanDefinitionRegistry and ResourceLoader .

Usage

From source file:org.agilemicroservices.autoconfigure.orm.RepositoryConfigurationDelegate.java

/**
 * Registers the found repositories in the given {@link BeanDefinitionRegistry}.
 *
 * @param registry//from w  ww .ja  v a  2 s.  c om
 * @param extension
 * @return {@link BeanComponentDefinition}s for all repository bean definitions found.
 */
public List<BeanComponentDefinition> registerRepositoriesIn(BeanDefinitionRegistry registry,
        RepositoryConfigurationExtension extension) {

    extension.registerBeansForRoot(registry, configurationSource);

    RepositoryBeanDefinitionBuilder builder = new RepositoryBeanDefinitionBuilder(registry, extension,
            resourceLoader, environment);
    List<BeanComponentDefinition> definitions = new ArrayList<BeanComponentDefinition>();

    for (RepositoryConfiguration<? extends RepositoryConfigurationSource> configuration : extension
            .getRepositoryConfigurations(configurationSource, resourceLoader, inMultiStoreMode)) {

        BeanDefinitionBuilder definitionBuilder = builder.build(configuration);

        extension.postProcess(definitionBuilder, configurationSource);

        AbstractBeanDefinition beanDefinition = definitionBuilder.getBeanDefinition();
        String beanName = beanNameGenerator.generateBeanName(beanDefinition, registry);

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug(REPOSITORY_REGISTRATION, extension.getModuleName(), beanName,
                    configuration.getRepositoryInterface(), extension.getRepositoryFactoryClassName());
        }

        registry.registerBeanDefinition(beanName, beanDefinition);
        definitions.add(new BeanComponentDefinition(beanDefinition, beanName));
    }

    return definitions;
}