Example usage for org.springframework.data.repository.config RepositoryConfiguration isLazyInit

List of usage examples for org.springframework.data.repository.config RepositoryConfiguration isLazyInit

Introduction

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

Prototype

boolean isLazyInit();

Source Link

Document

Returns whether to initialize the repository proxy lazily.

Usage

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

/**
 * Builds a new {@link BeanDefinitionBuilder} from the given {@link BeanDefinitionRegistry} and {@link ResourceLoader}
 * .// w w w. j a  v  a2s .  c  o  m
 *
 * @param configuration must not be {@literal null}.
 * @return
 */
public BeanDefinitionBuilder build(RepositoryConfiguration<?> configuration) {

    Assert.notNull(registry, "BeanDefinitionRegistry must not be null!");
    Assert.notNull(resourceLoader, "ResourceLoader must not be null!");

    String factoryBeanName = configuration.getRepositoryFactoryBeanName();
    factoryBeanName = StringUtils.hasText(factoryBeanName) ? factoryBeanName
            : extension.getRepositoryFactoryClassName();

    BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(factoryBeanName);

    builder.getRawBeanDefinition().setSource(configuration.getSource());
    builder.addPropertyValue("repositoryInterface", configuration.getRepositoryInterface());
    builder.addPropertyValue("queryLookupStrategyKey", configuration.getQueryLookupStrategyKey());
    builder.addPropertyValue("lazyInit", configuration.isLazyInit());
    builder.addPropertyValue("repositoryBaseClass", configuration.getRepositoryBaseClassName());

    NamedQueriesBeanDefinitionBuilder definitionBuilder = new NamedQueriesBeanDefinitionBuilder(
            extension.getDefaultNamedQueryLocation());

    if (StringUtils.hasText(configuration.getNamedQueriesLocation())) {
        definitionBuilder.setLocations(configuration.getNamedQueriesLocation());
    }

    builder.addPropertyValue("namedQueries", definitionBuilder.build(configuration.getSource()));

    String customImplementationBeanName = registerCustomImplementation(configuration);

    if (customImplementationBeanName != null) {
        builder.addPropertyReference("customImplementation", customImplementationBeanName);
        builder.addDependsOn(customImplementationBeanName);
    }

    RootBeanDefinition evaluationContextProviderDefinition = new RootBeanDefinition(
            ExtensionAwareEvaluationContextProvider.class);
    evaluationContextProviderDefinition.setSource(configuration.getSource());

    builder.addPropertyValue("evaluationContextProvider", evaluationContextProviderDefinition);

    return builder;
}