List of usage examples for org.springframework.data.repository.config NamedQueriesBeanDefinitionParser NamedQueriesBeanDefinitionParser
public NamedQueriesBeanDefinitionParser(String defaultLocation)
From source file:org.springframework.data.repository.config.AbstractRepositoryConfigDefinitionParser.java
/** * Registers a generic repository factory bean for a bean with the given name and the provided configuration context. * //from w w w . ja v a2 s. c o m * @param parser * @param name * @param context */ private void registerGenericRepositoryFactoryBean(ParserContext parser, T context) { try { Object beanSource = parser.extractSource(context.getSource()); BeanDefinitionBuilder builder = BeanDefinitionBuilder .rootBeanDefinition(context.getRepositoryFactoryBeanClassName()); builder.addPropertyValue("repositoryInterface", context.getInterfaceName()); builder.addPropertyValue("queryLookupStrategyKey", context.getQueryLookupStrategyKey()); builder.addPropertyValue("namedQueries", new NamedQueriesBeanDefinitionParser(context.getNamedQueriesLocation()) .parse(context.getSource(), parser)); String customImplementationBeanName = registerCustomImplementation(context, parser, beanSource); if (customImplementationBeanName != null) { builder.addPropertyReference("customImplementation", customImplementationBeanName); } postProcessBeanDefinition(context, builder, parser.getRegistry(), beanSource); AbstractBeanDefinition beanDefinition = builder.getBeanDefinition(); beanDefinition.setSource(beanSource); if (LOG.isDebugEnabled()) { LOG.debug("Registering repository: " + context.getBeanId() + " - Interface: " + context.getInterfaceName() + " - Factory: " + context.getRepositoryFactoryBeanClassName() + ", - Custom implementation: " + customImplementationBeanName); } BeanComponentDefinition definition = new BeanComponentDefinition(beanDefinition, context.getBeanId()); parser.registerBeanComponent(definition); } catch (RuntimeException e) { handleError(e, context.getSource(), parser.getReaderContext()); } }