List of usage examples for org.springframework.beans.factory.support AbstractBeanDefinition getQualifiers
public Set<AutowireCandidateQualifier> getQualifiers()
From source file:org.nextframework.persistence.GenericDAO.java
public JdbcTemplate getJdbcTemplate() { if (jdbcTemplate == null) { String[] beans = applicationContext.getBeanNamesForType(DataSource.class); if (beans.length == 1) { jdbcTemplate = new JdbcTemplate(applicationContext.getBean(beans[0], DataSource.class)); } else if (applicationContext instanceof ConfigurableApplicationContext) { //TODO THIS LOGIC SHOULD NOT BE HERE //check the qualifiers to find the correct datasource ConfigurableListableBeanFactory beanFactory = ((ConfigurableApplicationContext) applicationContext) .getBeanFactory();/* w w w .j a va2 s . c o m*/ for (String beanName : beans) { AbstractBeanDefinition beanDefinition = (AbstractBeanDefinition) beanFactory .getBeanDefinition(beanName); Set<AutowireCandidateQualifier> qualifiers = beanDefinition.getQualifiers(); for (AutowireCandidateQualifier autowireCandidateQualifier : qualifiers) { String[] attributeNames = autowireCandidateQualifier.attributeNames(); for (String attribute : attributeNames) { Object value = autowireCandidateQualifier.getMetadataAttribute(attribute).getValue(); if (getPersistenceContext().equals(value)) { jdbcTemplate = new JdbcTemplate( applicationContext.getBean(beanName, DataSource.class)); return jdbcTemplate; } } } } } } return jdbcTemplate; }