/** * * @author Craig Andrews * * {@link EnableAutoConfiguration Auto-configuration} for {@link RedissonCacheStatisticsProvider} * */ @Configuration @AutoConfigureAfter(CacheAutoConfiguration.class) @ConditionalOnBean(CacheManager.class) @ConditionalOnClass(CacheStatisticsProvider.class) public class RedissonCacheStatisticsAutoConfiguration { @Bean public RedissonCacheStatisticsProvider redissonCacheStatisticsProvider(){ return new RedissonCacheStatisticsProvider(); } }
/** * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration * Auto-configuration} for resilience4j-metrics. */ @Configuration @ConditionalOnClass(MetricsAutoConfiguration.class) @AutoConfigureAfter(value = {CircuitBreakerAutoConfiguration.class, MetricsAutoConfiguration.class}) public class RateLimiterMetricsAutoConfiguration { @Bean public RateLimiterMetrics registerRateLimiterMetrics(RateLimiterRegistry rateLimiterRegistry) { return RateLimiterMetrics.ofRateLimiterRegistry(rateLimiterRegistry); } }
/** * @author xiaolongzuo */ @Configuration @ConditionalOnClass(name = "org.springframework.cloud.alicloud.ans.AnsAutoConfiguration") @EnableConfigurationProperties(AnsProperties.class) @ImportAutoConfiguration(EdasContextAutoConfiguration.class) public class AnsContextAutoConfiguration { }
@Configuration @ConditionalOnClass(org.hswebframework.web.datasource.jta.JtaDynamicDataSourceService.class) public static class InDBJtaDynamicDataSourceServiceAutoConfiguration { @Bean public DynamicDataSourceService inDBJtaDynamicDataSourceService(InDBDataSourceRepository repository, DataSource dataSource) { return new InDBJtaDynamicDataSourceService(repository, new DynamicDataSourceProxy("dataSource", dataSource)); } }
@Configuration @ConditionalOnProperty(prefix = "hsweb.authorize", name = "basic-authorization", havingValue = "true") @ConditionalOnClass(UserTokenForTypeParser.class) public static class BasicAuthorizationConfiguration { @Bean public BasicAuthorizationTokenParser basicAuthorizationTokenParser(AuthenticationManager authenticationManager, UserTokenManager tokenManager) { return new BasicAuthorizationTokenParser(authenticationManager, tokenManager); } } }
/** * An auto-configuration for Armeria-based {@link WebClient}. */ @Configuration @ConditionalOnClass(WebClient.Builder.class) @ConditionalOnMissingBean(ClientHttpConnector.class) @Import({ WebClientAutoConfiguration.class, DataBufferFactoryWrapperConfiguration.class }) public class ArmeriaClientAutoConfiguration { /** * Returns a {@link ClientHttpConnector} which is configured by a list of * {@link ArmeriaClientConfigurator}s. */ @Bean public ClientHttpConnector clientHttpConnector( List<ArmeriaClientConfigurator> customizer, DataBufferFactoryWrapper<?> factoryWrapper) { return new ArmeriaClientHttpConnector(customizer, factoryWrapper); } /** * Returns a {@link WebClientCustomizer} which sets an {@link ArmeriaClientHttpConnector} to the * {@link Builder}. */ @Bean public WebClientCustomizer webClientCustomizer(ClientHttpConnector clientHttpConnector) { return builder -> builder.clientConnector(clientHttpConnector); } }
/** * @author zhouhao */ @Configuration @ConditionalOnClass({RedissonClient.class, RedissonLockManager.class}) @ConditionalOnBean(RedissonClient.class) public class RedisLockManagerAutoConfiguration { @Bean public LockManager lockManager(RedissonClient redissonClient) { return new RedissonLockManager(redissonClient); } }
@Bean @ConditionalOnMissingBean(RateLimiterManager.class) @ConditionalOnClass(name = "com.google.common.util.concurrent.RateLimiter") public GuavaRateLimiterManager guavaRateLimiterManager() { return new GuavaRateLimiterManager(); }
@Bean @Scope("prototype") @ConditionalOnClass(name = "com.alibaba.csp.sentinel.SphU") @ConditionalOnProperty(name = "feign.sentinel.enabled", havingValue = "true") Feign.Builder feignSentinelBuilder(BeanFactory beanFactory) { return FescarSentinelFeignBuilder.builder(beanFactory); }
@ConditionalOnClass(name = "org.springframework.cloud.openfeign.FeignClient") @ConditionalOnProperty(prefix = JavaMelodyConfigurationProperties.PREFIX, name = "spring-monitoring-enabled", matchIfMissing = true) @ConditionalOnMissingBean(DefaultAdvisorAutoProxyCreator.class) public MonitoringSpringAdvisor monitoringFeignClientAdvisor() throws ClassNotFoundException { final Class<? extends Annotation> feignClientClass = (Class<? extends Annotation>) Class
/** * @author hengyunabc */ @ConditionalOnClass(Endpoint.class) @EnableConfigurationProperties({ SentinelProperties.class }) public class SentinelEndpointAutoConfiguration { @Bean @ConditionalOnMissingBean @ConditionalOnEnabledEndpoint public SentinelEndpoint sentinelEndPoint(SentinelProperties sentinelProperties) { return new SentinelEndpoint(sentinelProperties); } }
@Bean @ConditionalOnClass(name = "oracle.jdbc.driver.OracleDriver") public OracleTableMetaDataParser oracleTableMetaParser() { return new OracleTableMetaDataParser(sqlExecutor); } @Bean
/** * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration * Auto-configuration} for resilience4j-metrics. */ @Configuration @ConditionalOnClass(MetricsAutoConfiguration.class) @AutoConfigureAfter(value = {CircuitBreakerAutoConfiguration.class, MetricsAutoConfiguration.class}) public class CircuitBreakerMetricsAutoConfiguration { @Bean @ConditionalOnProperty(value = "resilience4j.circuitbreaker.metrics.enabled", matchIfMissing = true) public CircuitBreakerMetrics registerCircuitBreakerMetrics(CircuitBreakerRegistry circuitBreakerRegistry) { return CircuitBreakerMetrics.ofCircuitBreakerRegistry(circuitBreakerRegistry); } }
/** * Configuration for Slfj4 */ @Configuration @ConditionalOnClass(MDC.class) @EnableConfigurationProperties(SleuthSlf4jProperties.class) protected static class Slf4jConfiguration { @Bean @ConditionalOnProperty(value = "spring.sleuth.log.slf4j.enabled", matchIfMissing = true) public CurrentTraceContext.ScopeDecorator slf4jSpanDecorator( SleuthProperties sleuthProperties, SleuthSlf4jProperties sleuthSlf4jProperties) { return new Slf4jScopeDecorator(sleuthProperties, sleuthSlf4jProperties); } }
/** * @author zhouhao * @see JtaJdbcSqlExecutor * @since 3.0 */ @ConditionalOnClass(SqlExecutor.class) @Configuration public class JtaJdbcSqlExecutorAutoConfiguration { @Bean public JtaJdbcSqlExecutor jtaJdbcSqlExecutor() { return new JtaJdbcSqlExecutor(); } }
/** * OSS Auto {@link Configuration} * * @author <a href="mailto:fangjian0423@gmail.com">Jim</a> */ @Configuration @ConditionalOnClass(OSS.class) @ConditionalOnProperty(name = OssConstants.ENABLED, havingValue = "true", matchIfMissing = true) public class OssAutoConfiguration { @Bean @ConditionalOnMissingBean public OssStorageProtocolResolver ossStorageProtocolResolver() { return new OssStorageProtocolResolver(); } }
@Configuration @ConditionalOnClass(JAXRSServerFactoryBean.class) @ConditionalOnExpression("'${cxf.jaxrs.classes-scan}'=='true' && '${cxf.jaxrs.component-scan}'!='true'") @ConditionalOnMissingBean(Server.class) @Import(SpringJaxrsClassesScanServer.class) protected static class JaxRsClassesConfiguration { }
@Bean @ConditionalOnMissingBean(BloomFilterManager.class) @ConditionalOnClass(name = "com.google.common.hash.BloomFilter") public BloomFilterManager bloomFilterManager() { return new GuavaBloomFilterManager(); } }
@Bean @Scope("prototype") @ConditionalOnClass(name = "com.netflix.hystrix.HystrixCommand") @ConditionalOnProperty(name = "feign.hystrix.enabled", havingValue = "true") Feign.Builder feignHystrixBuilder(BeanFactory beanFactory) { return FescarHystrixFeignBuilder.builder(beanFactory); }
@Bean @ConditionalOnClass(name = "net.sourceforge.jtds.jdbc.Driver") public SqlServerTableMetaDataParser jstdSqlServerTableMetaDataParser() { return new SqlServerTableMetaDataParser(sqlExecutor); }