@Override public int getOrder() { if (this.beanFactory != null && this.aspectBeanName != null && this.beanFactory.isSingleton(this.aspectBeanName) && this.beanFactory.isTypeMatch(this.aspectBeanName, Ordered.class)) { return ((Ordered) this.beanFactory.getBean(this.aspectBeanName)).getOrder(); } return Ordered.LOWEST_PRECEDENCE; }
@Test public void configWithObjectReturnType() { BeanFactory factory = initBeanFactory(ConfigWithNonSpecificReturnTypes.class); assertEquals(Object.class, factory.getType("stringBean")); assertFalse(factory.isTypeMatch("stringBean", String.class)); String stringBean = factory.getBean("stringBean", String.class); assertEquals("foo", stringBean); }
if (parentBeanFactory != null && !containsBeanDefinition(beanName)) { return parentBeanFactory.isTypeMatch(originalBeanName(name), typeToMatch);
if (parentBeanFactory != null && !containsBeanDefinition(beanName)) { return parentBeanFactory.isTypeMatch(originalBeanName(name), typeToMatch);
if (parentBeanFactory != null && !containsBeanDefinition(beanName)) { return parentBeanFactory.isTypeMatch(originalBeanName(name), targetType);
@Override public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { for (BeanFactory f : factories) { try { boolean b = f.isTypeMatch(name, targetType); if (b) { return b; } } catch (BeansException e) { LOG.info("bean exception", e); } } return false; }
@Override public boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException { for (BeanFactory f : factories) { try { boolean b = f.isTypeMatch(name, typeToMatch); if (b) { return b; } } catch (BeansException e) { LOG.info("bean exception", e); } } return false; }
void initialize(BeanFactory beanFactory) { this.beanFactory = beanFactory; if (!beanFactory.isTypeMatch(name, type)) { throw new ClassCastException( "Spring bean named '" + name + "' does not implement " + type.getName() + "."); } singleton = beanFactory.isSingleton(name); }
@Override public int getOrder() { if (this.beanFactory != null && this.aspectBeanName != null && this.beanFactory.isSingleton(this.aspectBeanName) && this.beanFactory.isTypeMatch(this.aspectBeanName, Ordered.class)) { return ((Ordered) this.beanFactory.getBean(this.aspectBeanName)).getOrder(); } return Ordered.LOWEST_PRECEDENCE; }
@Override public int getOrder() { if (this.beanFactory.isSingleton(this.aspectBeanName) && this.beanFactory.isTypeMatch(this.aspectBeanName, Ordered.class)) { return ((Ordered) this.beanFactory.getBean(this.aspectBeanName)).getOrder(); } return Ordered.LOWEST_PRECEDENCE; }
.filter(it -> it.isTypeMatch(poolName, Pool.class)) .map(it -> { try {
.filter(it -> it.isTypeMatch(poolName, Pool.class)) .map(it -> { try {
/** * Get the {@link DataSource} type bean name which corresponds to given data context id * @param registry Bean registry * @param beanFactory Bean factory * @param dataContextId Optional data context id * @return The DataSource bean name, or <code>null</code> if not found */ private static String getDataSourceBeanName(BeanDefinitionRegistry registry, BeanFactory beanFactory, String dataContextId) { // check unique DataSource if no data context id specified if (dataContextId == null && beanFactory instanceof ListableBeanFactory) { String[] dataSourceBeanNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors( (ListableBeanFactory) beanFactory, DataSource.class, false, false); if (dataSourceBeanNames != null && dataSourceBeanNames.length == 1) { return dataSourceBeanNames[0]; } } // check bean name using data context id String dsBeanName = BeanRegistryUtils.buildBeanName(dataContextId, EnableDataSource.DEFAULT_DATASOURCE_BEAN_NAME); if (registry.containsBeanDefinition(dsBeanName) && beanFactory.isTypeMatch(dsBeanName, DataSource.class)) { return dsBeanName; } return null; }
/** * {@inheritDoc} */ @Override public boolean realizes(Class<?> clzClass, ParameterResolver resolver, ClassLoader loader) { String sBeanName = getBeanName().evaluate(resolver); BeanFactory factory = ensureBeanFactory(resolver, loader); if (factory.containsBean(sBeanName)) { return factory.isTypeMatch(sBeanName, clzClass); } else { String sFactory = getFactoryNameAsString(BeanFactory.class, getFactoryName(), resolver); StringBuilder sbProblem = new StringBuilder(); sbProblem.append("Spring bean '").append(sBeanName).append("' could not be loaded from bean factory '") .append(sFactory).append("' (").append(factory).append(")"); StringBuilder sbAdvice = new StringBuilder(); sbAdvice.append("Ensure that a bean name of '").append(sBeanName).append("' exists in bean factory '") .append(sFactory).append("'."); throw new ConfigurationException(sbProblem.toString(), sbAdvice.toString()); } }
@Override public boolean justInTimeResolution(Injectee failedInjectionPoint) { Class<?> lookForMe = getClassFromType(failedInjectionPoint.getRequiredType()); String name = getName(failedInjectionPoint); try { if (name != null) { if (beanFactory.containsBean(name) && beanFactory.isTypeMatch(name, lookForMe)) { addMe(lookForMe, name, failedInjectionPoint); return true; } } else { if (beanFactory.getBean(lookForMe) != null) { addMe(lookForMe, null, failedInjectionPoint); return true; } } } catch (Throwable th) { return false; } return false; }
if (parentBeanFactory != null && !containsBeanDefinition(beanName)) { return parentBeanFactory.isTypeMatch(originalBeanName(name), typeToMatch);