@Test public void primaryMetadataIsPropagated() { @Configuration class Config { @Primary @Bean Object foo() { return null; } } assertTrue("primary metadata was not propagated", beanDef(Config.class).isPrimary()); }
@Test public void primaryMetadataIsFalseByDefault() { @Configuration class Config { @Bean Object foo() { return null; } } assertFalse("@Bean methods should be non-primary by default", beanDef(Config.class).isPrimary()); }
setDependsOn(otherAbd.getDependsOn()); setAutowireCandidate(otherAbd.isAutowireCandidate()); setPrimary(otherAbd.isPrimary()); copyQualifiersFrom(otherAbd); setInstanceSupplier(otherAbd.getInstanceSupplier());
setDependsOn(otherAbd.getDependsOn()); setAutowireCandidate(otherAbd.isAutowireCandidate()); setPrimary(otherAbd.isPrimary()); copyQualifiersFrom(otherAbd); setInstanceSupplier(otherAbd.getInstanceSupplier());
setDependsOn(originalAbd.getDependsOn()); setAutowireCandidate(originalAbd.isAutowireCandidate()); setPrimary(originalAbd.isPrimary()); copyQualifiersFrom(originalAbd); setInstanceSupplier(originalAbd.getInstanceSupplier());
setDependsOn(originalAbd.getDependsOn()); setAutowireCandidate(originalAbd.isAutowireCandidate()); setPrimary(originalAbd.isPrimary()); copyQualifiersFrom(originalAbd); setInstanceSupplier(originalAbd.getInstanceSupplier());
private boolean isPrimary(BeanDefinition definition) { return definition instanceof AbstractBeanDefinition && ((AbstractBeanDefinition) definition).isPrimary(); }
setAutowireMode(otherAbd.getAutowireMode()); copyQualifiersFrom(otherAbd); setPrimary(otherAbd.isPrimary()); setDependencyCheck(otherAbd.getDependencyCheck()); setDependsOn(otherAbd.getDependsOn());
/** TODO: JAVADOC */ @SuppressWarnings("unchecked") public static <T> T getBean(ListableBeanFactory beanFactory, Class<T> type) { Map<String, Object> beansOfType = BeanFactoryUtils.beansOfTypeIncludingAncestors(beanFactory, type); int matchingBeanCount = beansOfType.size(); // happy path -- there is exactly one matching bean: return it. if (matchingBeanCount == 1) return (T) beansOfType.values().iterator().next(); // no matches: throw. if (matchingBeanCount == 0) throw new NoSuchBeanDefinitionException(type, ""); // there is more than one instance: attempt to find a primary bean ArrayList<String> primaryCandidates = new ArrayList<String>(); for (String beanName : beansOfType.keySet()) { AbstractBeanDefinition beanDef = (AbstractBeanDefinition) ((ConfigurableListableBeanFactory) beanFactory).getBeanDefinition(beanName); if (beanDef.isPrimary()) { primaryCandidates.add(beanName); } } int primaryCandidateCount = primaryCandidates.size(); if (primaryCandidateCount == 0) { throw new AmbiguousBeanLookupException(type, beansOfType); } if (primaryCandidateCount > 1) { throw new MultiplePrimaryBeanDefinitionException(type, primaryCandidates); } // exactly one primary candidate found return (T) beanFactory.getBean(primaryCandidates.get(0)); }
setAutowireCandidate(originalAbd.isAutowireCandidate()); copyQualifiersFrom(originalAbd); setPrimary(originalAbd.isPrimary()); setNonPublicAccessAllowed(originalAbd.isNonPublicAccessAllowed()); setLenientConstructorResolution(originalAbd.isLenientConstructorResolution());
if (bd.isPrimary()) { beanElement.addAttribute("primary", "true");
if (bd.isPrimary()) { beanElement.addAttribute("primary", "true");
if (bd.isPrimary()) { beanElement.addAttribute("primary", "true");