下面列出了怎么用org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Springdoc bean factory post processor 2 bean factory post processor.
*
* @return the bean factory post processor
*/
// For spring-boot-1 compatibility
@Bean
@Conditional(CacheOrGroupedOpenApiCondition.class)
@ConditionalOnMissingClass(value = BINDRESULT_CLASS)
@Lazy(false)
static BeanFactoryPostProcessor springdocBeanFactoryPostProcessor2() {
return SpringdocBeanFactoryConfigurer::initBeanFactoryPostProcessor;
}
/**
* ApiBoot Jdbc Resource Pusher
* extends from ApiBootJdbcResourcePusher
*
* @return ApiBootJdbcResourcePusher
*/
@Bean
@ConditionalOnMissingBean
@ConditionalOnMissingClass("org.springframework.data.redis.core.RedisTemplate")
ApiBootMemoryResourcePusher apiBootMemoryResourcePusher() {
return new ApiBootMemoryResourcePusher(resourceStoreDelegate);
}
/**
* google guava rate limiter
*
* @param rateLimiterConfigCentre RateLimiter Config Centre
* @return ApiBootRateLimiter
*/
@Bean
@ConditionalOnMissingBean
@ConditionalOnMissingClass("org.springframework.data.redis.core.RedisTemplate")
public ApiBootRateLimiter googleGuavaRateLimiter(RateLimiterConfigCentre rateLimiterConfigCentre) {
return new GoogleGuavaRateLimiter(apiBootRateLimiterProperties.isEnableGlobalQps() ? apiBootRateLimiterProperties.getGlobalQps() : 0L, rateLimiterConfigCentre);
}
/**
* default config centre
*
* @return RateLimiterConfigCentre
*/
@Bean
@ConditionalOnMissingBean
@ConditionalOnMissingClass({"com.alibaba.boot.nacos.config.properties.NacosConfigProperties"})
public RateLimiterConfigCentre defaultRateLimiterConfigCentre() {
return new DefaultRateLimiterConfigCentre();
}
@Bean
@ConditionalOnMissingClass("org.zkoss.zats.mimic.Zats") //only allow custom update URI outside Zats testcases.
public ServletRegistrationBean customizableDHtmlUpdateServlet() {
final String updateUri = zkProperties.getUpdateUri();
logger.info("ZK-Springboot: ServletRegistrationBean for DHtmlUpdateServlet with path " + updateUri);
return new ServletRegistrationBean(new DHtmlUpdateServlet(), updateUri + "/*");
}
/**
* (基于内存的)用户授权信息Cache
*/
@Bean(name = "cacheManager")
@ConditionalOnMissingBean(name = "cacheManager")
@ConditionalOnMissingClass(value = {"org.apache.shiro.cache.ehcache.EhCacheManager"})
public CacheManager cacheManager() {
return new MemoryConstrainedCacheManager();
}
@Bean
@ConditionalOnClass(name = "org.springframework.web.client.RestTemplate")
@ConditionalOnMissingClass("com.sun.jersey.api.client.filter.ClientFilter")
@ConditionalOnMissingBean(value = { AbstractDiscoveryClientOptionalArgs.class },
search = SearchStrategy.CURRENT)
@ConditionalOnProperty(prefix = "eureka.client", name = "webclient.enabled",
matchIfMissing = true, havingValue = "false")
public RestTemplateDiscoveryClientOptionalArgs restTemplateDiscoveryClientOptionalArgs() {
logger.info("Eureka HTTP Client uses RestTemplate.");
return new RestTemplateDiscoveryClientOptionalArgs();
}
@Bean
@ConditionalOnMissingClass("com.sun.jersey.api.client.filter.ClientFilter")
@ConditionalOnClass(
name = "org.springframework.web.reactive.function.client.WebClient")
@ConditionalOnMissingBean(
value = { AbstractDiscoveryClientOptionalArgs.class,
RestTemplateDiscoveryClientOptionalArgs.class },
search = SearchStrategy.CURRENT)
@ConditionalOnProperty(prefix = "eureka.client", name = "webclient.enabled",
havingValue = "true")
public WebClientDiscoveryClientOptionalArgs webClientDiscoveryClientOptionalArgs() {
logger.info("Eureka HTTP Client uses WebClient.");
return new WebClientDiscoveryClientOptionalArgs();
}
@Bean
@ConditionalOnMissingBean
@ConditionalOnMissingClass("org.springframework.data.domain.Pageable")
public Encoder feignEncoder(ObjectProvider<AbstractFormWriter> formWriterProvider) {
return springEncoder(formWriterProvider);
}
/**
* 构建 {@link DefaultFormatter} Bean
*
* @return {@link DefaultFormatter}
*/
@Bean
@ConditionalOnMissingClass(value = "com.fasterxml.jackson.databind.ObjectMapper")
public Formatter defaultFormatter() {
return new DefaultFormatter();
}
@ConditionalOnMissingClass("org.springframework.boot.context.embedded.ServletRegistrationBean")
@Bean
public ServletRegistrationBean defaultServletRegistrationBean() {
return new ServletRegistrationBean(new NoOpServlet(), "/no-op");
}
@Bean
@ConditionalOnMissingClass({ "com.alipay.sofa.healthcheck.startup.ReadinessCheckCallback" })
public ApplicationContextRefreshedListener applicationContextRefreshedListener() {
return new ApplicationContextRefreshedListener();
}
@Bean
@ConditionalOnMissingClass("ololo.Trololo")
public String missingString2() {
System.out.println("see me");
return "but will see me =)";
}
@Bean
@ConditionalOnMissingClass("org.hswebframework.web.datasource.jta.JtaDynamicDataSourceService")
public DynamicDataSourceService inDBDynamicDataSourceService(DynamicDataSourceConfigRepository repository,
DataSource dataSource) {
return new InDBDynamicDataSourceService(repository, new DynamicDataSourceProxy("dataSource", dataSource));
}
@Bean
@ConditionalOnMissingClass("org.springframework.security.core.Authentication")
public RateLimitUtils rateLimitUtils(final RateLimitProperties rateLimitProperties) {
return new DefaultRateLimitUtils(rateLimitProperties);
}
@Bean
@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
@ConditionalOnMissingClass("reactor.core.publisher.Flux")
SleuthMethodInvocationProcessor nonReactorSleuthMethodInvocationProcessor() {
return new NonReactorSleuthMethodInvocationProcessor();
}
@Bean
@ConditionalOnMissingClass("org.springframework.cloud.aws.mail.simplemail.SimpleEmailServiceJavaMailSender")
public MailSender simpleMailSender(
AmazonSimpleEmailService amazonSimpleEmailService) {
return new SimpleEmailServiceMailSender(amazonSimpleEmailService);
}
@Bean
@ConditionalOnMissingClass("com.sequenceiq.cloudbreak.service.user.UserService")
public InternalUserModifier internalUserModifier() {
return new InternalUserModifier();
}
@Bean(name = "MockAuthorProvider")
@ConditionalOnMissingBean
@ConditionalOnMissingClass({"org.springframework.security.core.context.SecurityContextHolder"})
public AuthorProvider unknownAuthorProvider() {
return new MockAuthorProvider();
}
@Bean(name = "MockAuthorProvider")
@ConditionalOnMissingBean
@ConditionalOnMissingClass({"org.springframework.security.core.context.SecurityContextHolder"})
public AuthorProvider unknownAuthorProvider() {
return new MockAuthorProvider();
}