Example usage for org.springframework.data.repository.config RepositoryBeanNameGenerator RepositoryBeanNameGenerator

List of usage examples for org.springframework.data.repository.config RepositoryBeanNameGenerator RepositoryBeanNameGenerator

Introduction

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

Prototype

RepositoryBeanNameGenerator

Source Link

Usage

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

/**
 * Creates a new {@link RepositoryConfigurationDelegate} for the given {@link RepositoryConfigurationSource} and
 * {@link ResourceLoader} and {@link Environment}.
 *
 * @param configurationSource must not be {@literal null}.
 * @param resourceLoader      must not be {@literal null}.
 * @param environment         must not be {@literal null}.
 *///from w  w w. ja v  a  2  s . c om
public RepositoryConfigurationDelegate(RepositoryConfigurationSource configurationSource,
        ResourceLoader resourceLoader, Environment environment) {
    Assert.notNull(resourceLoader);

    RepositoryBeanNameGenerator generator = new RepositoryBeanNameGenerator();
    generator.setBeanClassLoader(resourceLoader.getClassLoader());

    this.beanNameGenerator = generator;
    this.configurationSource = configurationSource;
    this.resourceLoader = resourceLoader;
    this.environment = defaultEnvironment(environment, resourceLoader);
    this.inMultiStoreMode = multipleStoresDetected();
}

From source file:org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport.java

@Override
public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata,
        final BeanDefinitionRegistry registry) {

    ResourceLoader resourceLoader = new DefaultResourceLoader();
    AnnotationRepositoryConfigurationSource configurationSource = getConfigurationSource();
    RepositoryConfigurationExtension extension = getRepositoryConfigurationExtension();
    extension.registerBeansForRoot(registry, configurationSource);

    RepositoryBeanNameGenerator generator = new RepositoryBeanNameGenerator();
    generator.setBeanClassLoader(this.beanClassLoader);

    Collection<RepositoryConfiguration<AnnotationRepositoryConfigurationSource>> repositoryConfigurations = extension
            .getRepositoryConfigurations(configurationSource, resourceLoader);

    for (RepositoryConfiguration<AnnotationRepositoryConfigurationSource> repositoryConfiguration : repositoryConfigurations) {
        RepositoryBeanDefinitionBuilder builder = new RepositoryBeanDefinitionBuilder(repositoryConfiguration,
                extension);/*from ww  w .  j  av a2s .co  m*/
        BeanDefinitionBuilder definitionBuilder = builder.build(registry, resourceLoader);
        extension.postProcess(definitionBuilder, configurationSource);

        String beanName = generator.generateBeanName(definitionBuilder.getBeanDefinition(), registry);
        registry.registerBeanDefinition(beanName, definitionBuilder.getBeanDefinition());
    }
}