下面列出了org.springframework.beans.factory.ObjectProvider#getIfAvailable ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Bean
ServiceInstanceListSupplier supplier(ConfigurableApplicationContext context,
ReactiveDiscoveryClient discoveryClient,
LoadBalancerProperties loadBalancerProperties,
WebClient.Builder webClientBuilder) {
DiscoveryClientServiceInstanceListSupplier firstDelegate = new DiscoveryClientServiceInstanceListSupplier(
discoveryClient, context.getEnvironment());
HealthCheckServiceInstanceListSupplier delegate = new TestHealthCheckServiceInstanceListSupplier(
firstDelegate, loadBalancerProperties.getHealthCheck(),
webClientBuilder.build());
delegate.afterPropertiesSet();
ObjectProvider<LoadBalancerCacheManager> cacheManagerProvider = context
.getBeanProvider(LoadBalancerCacheManager.class);
return new CachingServiceInstanceListSupplier(delegate,
cacheManagerProvider.getIfAvailable());
}
@Bean
@ConditionalOnGradleVersion({ "4", "5", "6" })
BuildCustomizer<GradleBuild> springBootPluginContributor(ProjectDescription description,
ObjectProvider<DependencyManagementPluginVersionResolver> versionResolver, InitializrMetadata metadata) {
return new SpringBootPluginBuildCustomizer(description, versionResolver
.getIfAvailable(() -> new InitializrDependencyManagementPluginVersionResolver(metadata)));
}
@Bean
@ConditionalOnMissingBean
MessageVerifier<Message> contractVerifierJmsMessageExchange(
ObjectProvider<JmsTemplate> jmsTemplateProvider) {
JmsTemplate jmsTemplate = jmsTemplateProvider.getIfAvailable(JmsTemplate::new);
return new JmsStubMessages(jmsTemplate);
}
public DefaultUserInfoRestTemplateFactory(ObjectProvider<List<UserInfoRestTemplateCustomizer>> customizers,
ObjectProvider<OAuth2ProtectedResourceDetails> details,
ObjectProvider<OAuth2ClientContext> oauth2ClientContext) {
this.customizers = customizers.getIfAvailable();
this.details = details.getIfAvailable();
this.oauth2ClientContext = oauth2ClientContext.getIfAvailable();
}
public SpringSecurityAuthenticationContextConfiguration(ObjectProvider<AuthenticationContext> authenticationContext) {
AuthenticationContext context = authenticationContext.getIfAvailable();
if (context == null) {
context = new SpringSecurityAuthenticationContext();
}
Authentication.setAuthenticationContext(context);
}
@Autowired
public void setHazelcastInstance(
@SpringSessionHazelcastInstance ObjectProvider<HazelcastInstance> springSessionHazelcastInstance,
ObjectProvider<HazelcastInstance> hazelcastInstance) {
HazelcastInstance hazelcastInstanceToUse = springSessionHazelcastInstance.getIfAvailable();
if (hazelcastInstanceToUse == null) {
hazelcastInstanceToUse = hazelcastInstance.getObject();
}
this.hazelcastInstance = hazelcastInstanceToUse;
}
@Bean(destroyMethod = "close")
@ConditionalOnMissingBean
public CuratorFramework curatorFramework(RetryPolicy retryPolicy,
ZookeeperProperties properties,
ObjectProvider<CuratorFrameworkCustomizer> optionalCuratorFrameworkCustomizerProvider,
ObjectProvider<EnsembleProvider> optionalEnsembleProvider,
ObjectProvider<TracerDriver> optionalTracerDriverProvider) throws Exception {
CuratorFrameworkFactory.Builder builder = CuratorFrameworkFactory.builder();
EnsembleProvider ensembleProvider = optionalEnsembleProvider.getIfAvailable();
if (ensembleProvider != null) {
builder.ensembleProvider(ensembleProvider);
}
else {
builder.connectString(properties.getConnectString());
}
builder.sessionTimeoutMs((int) properties.getSessionTimeout().toMillis())
.connectionTimeoutMs((int) properties.getConnectionTimeout().toMillis())
.retryPolicy(retryPolicy);
optionalCuratorFrameworkCustomizerProvider.orderedStream()
.forEach(curatorFrameworkCustomizer -> curatorFrameworkCustomizer
.customize(builder));
CuratorFramework curator = builder.build();
optionalTracerDriverProvider.ifAvailable(tracerDriver -> {
if (curator.getZookeeperClient() != null) {
curator.getZookeeperClient().setTracerDriver(tracerDriver);
}
});
curator.start();
log.trace("blocking until connected to zookeeper for "
+ properties.getBlockUntilConnectedWait()
+ properties.getBlockUntilConnectedUnit());
curator.blockUntilConnected(properties.getBlockUntilConnectedWait(),
properties.getBlockUntilConnectedUnit());
log.trace("connected to zookeeper");
return curator;
}
@Autowired
public void setRedisConnectionFactory(
@SpringSessionRedisConnectionFactory ObjectProvider<RedisConnectionFactory> springSessionRedisConnectionFactory,
ObjectProvider<RedisConnectionFactory> redisConnectionFactory) {
RedisConnectionFactory redisConnectionFactoryToUse = springSessionRedisConnectionFactory.getIfAvailable();
if (redisConnectionFactoryToUse == null) {
redisConnectionFactoryToUse = redisConnectionFactory.getObject();
}
this.redisConnectionFactory = redisConnectionFactoryToUse;
}
public ApiBootWebSecurityMemoryAutoConfiguration(ApiBootSecurityProperties apiBootSecurityProperties, ObjectProvider<AccessDeniedHandler> accessDeniedHandler, ObjectProvider<AuthenticationEntryPoint> authenticationEntryPoint) {
super(apiBootSecurityProperties, accessDeniedHandler.getIfAvailable(), authenticationEntryPoint.getIfAvailable());
}
public MailSenderAutoConfiguration(ObjectProvider<RegionProvider> regionProvider) {
this.regionProvider = regionProvider.getIfAvailable();
}
public TraceClientAutoConfigurer(ApplicationContext applicationContext, ObjectProvider<List<ITraceLogCustomizer>> logCustomizersProvider) {
this.applicationContext = applicationContext;
this.logCustomizers = logCustomizersProvider.getIfAvailable();
}
@Bean
PersistentApplicationEventMulticaster applicationEventMulticaster(ObjectProvider<EventPublicationRegistry> registry) {
return new PersistentApplicationEventMulticaster(
() -> registry.getIfAvailable(() -> new MapEventPublicationRegistry()));
}
public ApiBootWebSecurityMemoryAutoConfiguration(ApiBootSecurityProperties apiBootSecurityProperties, ObjectProvider<AccessDeniedHandler> accessDeniedHandler, ObjectProvider<AuthenticationEntryPoint> authenticationEntryPoint) {
super(apiBootSecurityProperties, accessDeniedHandler.getIfAvailable(), authenticationEntryPoint.getIfAvailable());
}
public ApiBootResourceRedisLoadAutoConfiguration(ObjectProvider<ApiBootResourceStoreDelegate> resourceStoreDelegateObjectProvider) {
this.resourceStoreDelegate = resourceStoreDelegateObjectProvider.getIfAvailable();
}
public ApiBootResourceLoadAutoConfiguration(ObjectProvider<ApiBootResourceStoreDelegate> resourceStoreDelegateObjectProvider) {
this.resourceStoreDelegate = resourceStoreDelegateObjectProvider.getIfAvailable();
}
public SentinelWebFluxAutoConfiguration(
ObjectProvider<List<ViewResolver>> viewResolvers,
ServerCodecConfigurer serverCodecConfigurer) {
this.viewResolvers = viewResolvers.getIfAvailable(Collections::emptyList);
this.serverCodecConfigurer = serverCodecConfigurer;
}
public ChronusAutoConfiguration(ObjectProvider<ApplicationConfig> applicationConfig,
ObjectProvider<RegistryConfig> registryConfig) {
this.applicationConfig = applicationConfig.getIfAvailable();
this.registryConfig = registryConfig.getIfAvailable();
}
public SentinelConfig(ObjectProvider<List<ViewResolver>> viewResolversProvider, ServerCodecConfigurer serverCodecConfigurer) {
this.viewResolvers = viewResolversProvider.getIfAvailable(Collections::emptyList);
this.serverCodecConfigurer = serverCodecConfigurer;
}
/**
* Websocket sync data service.
*
* @param websocketConfig the websocket config
* @param pluginSubscriber the plugin subscriber
* @param metaSubscribers the meta subscribers
* @param authSubscribers the auth subscribers
* @return the sync data service
*/
@Bean
public SyncDataService websocketSyncDataService(final ObjectProvider<WebsocketConfig> websocketConfig, final ObjectProvider<PluginDataSubscriber> pluginSubscriber,
final ObjectProvider<List<MetaDataSubscriber>> metaSubscribers, final ObjectProvider<List<AuthDataSubscriber>> authSubscribers) {
log.info("you use websocket sync soul data.......");
return new WebsocketSyncDataService(websocketConfig.getIfAvailable(WebsocketConfig::new), pluginSubscriber.getIfAvailable(),
metaSubscribers.getIfAvailable(Collections::emptyList), authSubscribers.getIfAvailable(Collections::emptyList));
}
/**
* init springCloud plugin.
*
* @param loadBalancerClient the load balancer client
* @return {@linkplain SpringCloudPlugin}
*/
@Bean
public SoulPlugin springCloudPlugin(final ObjectProvider<LoadBalancerClient> loadBalancerClient) {
return new SpringCloudPlugin(loadBalancerClient.getIfAvailable());
}