下面列出了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()
);
}
@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));
}
@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();
}