org.springframework.beans.factory.ObjectProvider#getObject ( )源码实例Demo

下面列出了org.springframework.beans.factory.ObjectProvider#getObject ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Nullable
private <T> T resolveBean(ResolvableType requiredType, @Nullable Object[] args, boolean nonUniqueAsNull) {
	NamedBeanHolder<T> namedBean = resolveNamedBean(requiredType, args, nonUniqueAsNull);
	if (namedBean != null) {
		return namedBean.getBeanInstance();
	}
	BeanFactory parent = getParentBeanFactory();
	if (parent instanceof DefaultListableBeanFactory) {
		return ((DefaultListableBeanFactory) parent).resolveBean(requiredType, args, nonUniqueAsNull);
	}
	else if (parent != null) {
		ObjectProvider<T> parentProvider = parent.getBeanProvider(requiredType);
		if (args != null) {
			return parentProvider.getObject(args);
		}
		else {
			return (nonUniqueAsNull ? parentProvider.getIfUnique() : parentProvider.getIfAvailable());
		}
	}
	return null;
}
 
@Nullable
private <T> T resolveBean(ResolvableType requiredType, @Nullable Object[] args, boolean nonUniqueAsNull) {
	NamedBeanHolder<T> namedBean = resolveNamedBean(requiredType, args, nonUniqueAsNull);
	if (namedBean != null) {
		return namedBean.getBeanInstance();
	}
	BeanFactory parent = getParentBeanFactory();
	if (parent instanceof DefaultListableBeanFactory) {
		return ((DefaultListableBeanFactory) parent).resolveBean(requiredType, args, nonUniqueAsNull);
	}
	else if (parent != null) {
		ObjectProvider<T> parentProvider = parent.getBeanProvider(requiredType);
		if (args != null) {
			return parentProvider.getObject(args);
		}
		else {
			return (nonUniqueAsNull ? parentProvider.getIfUnique() : parentProvider.getIfAvailable());
		}
	}
	return null;
}
 
@Bean
@ConditionalOnMissingBean(TracingWebFilter.class)
public TracingWebFilter traceFilter(
        final Tracer tracer,
        final WebTracingProperties webTracingProperties,
        final ObjectProvider<List<WebFluxSpanDecorator>> webFilterSpanDecorators,
        final @Qualifier("skipPattern") Pattern skipPattern
) {
    return new TracingWebFilter(
            tracer,
            webTracingProperties.getOrder(),
            skipPattern,
            webTracingProperties.getUrlPatterns(),
            webFilterSpanDecorators.getObject()
    );
}
 
源代码4 项目: eclair   文件: EclairAutoConfiguration.java
@Bean
@ConditionalOnSingleCandidate(Jaxb2Marshaller.class)
@ConditionalOnMissingBean(Jaxb2Printer.class)
@Order(100)
public Printer jaxb2Printer(ObjectProvider<Jaxb2Marshaller> jaxb2Marshaller) {
    Jaxb2Marshaller marshaller = jaxb2Marshaller.getObject();
    return new Jaxb2Printer(marshaller)
            .addPreProcessor(new JaxbElementWrapper(marshaller));
}
 
源代码5 项目: eclair   文件: EclairAutoConfiguration.java
@Bean
@ConditionalOnSingleCandidate(ObjectMapper.class)
@ConditionalOnMissingBean
@Order(200)
public JacksonPrinter jacksonPrinter(ObjectProvider<ObjectMapper> objectMapper) {
    return new JacksonPrinter(objectMapper.getObject());
}
 
@Bean
public static TracingWebClientBeanPostProcessor tracingWebClientBeanPostProcessor(
        final Tracer tracer,
        final ObjectProvider<List<WebClientSpanDecorator>> webClientSpanDecorators
) {
    return new TracingWebClientBeanPostProcessor(
            tracer,
            webClientSpanDecorators.getObject()
    );
}
 
@Autowired
public void setHazelcastInstance(
		@SpringSessionHazelcastInstance ObjectProvider<HazelcastInstance> springSessionHazelcastInstance,
		ObjectProvider<HazelcastInstance> hazelcastInstance) {
	HazelcastInstance hazelcastInstanceToUse = springSessionHazelcastInstance.getIfAvailable();
	if (hazelcastInstanceToUse == null) {
		hazelcastInstanceToUse = hazelcastInstance.getObject();
	}
	this.hazelcastInstance = hazelcastInstanceToUse;
}
 
@Autowired
public void setDataSource(@SpringSessionDataSource ObjectProvider<DataSource> springSessionDataSource,
		ObjectProvider<DataSource> dataSource) {
	DataSource dataSourceToUse = springSessionDataSource.getIfAvailable();
	if (dataSourceToUse == null) {
		dataSourceToUse = dataSource.getObject();
	}
	this.dataSource = dataSourceToUse;
}
 
@Autowired
public void setRedisConnectionFactory(
		@SpringSessionRedisConnectionFactory ObjectProvider<RedisConnectionFactory> springSessionRedisConnectionFactory,
		ObjectProvider<RedisConnectionFactory> redisConnectionFactory) {
	RedisConnectionFactory redisConnectionFactoryToUse = springSessionRedisConnectionFactory.getIfAvailable();
	if (redisConnectionFactoryToUse == null) {
		redisConnectionFactoryToUse = redisConnectionFactory.getObject();
	}
	this.redisConnectionFactory = redisConnectionFactoryToUse;
}
 
@Autowired
public void setRedisConnectionFactory(
		@SpringSessionRedisConnectionFactory ObjectProvider<ReactiveRedisConnectionFactory> springSessionRedisConnectionFactory,
		ObjectProvider<ReactiveRedisConnectionFactory> redisConnectionFactory) {
	ReactiveRedisConnectionFactory redisConnectionFactoryToUse = springSessionRedisConnectionFactory
			.getIfAvailable();
	if (redisConnectionFactoryToUse == null) {
		redisConnectionFactoryToUse = redisConnectionFactory.getObject();
	}
	this.redisConnectionFactory = redisConnectionFactoryToUse;
}
 
public OverridingSingletonBeanConfig(ObjectProvider<SingletonBeanConfig> other) {
	other.getObject();
}
 
public OverridingSingletonBeanConfig(ObjectProvider<SingletonBeanConfig> other) {
	other.getObject();
}