@Configuration @ConditionalOnWebApplication @Conditional(SpringBootAdminClientEnabledCondition.class) @AutoConfigureAfter({WebEndpointAutoConfiguration.class, RestTemplateAutoConfiguration.class}) @EnableConfigurationProperties({ClientProperties.class, InstanceProperties.class, ServerProperties.class, ManagementServerProperties.class}) public class SpringBootAdminClientAutoConfiguration {
@Configuration @Conditional(KeyCondition.class) @ConditionalOnMissingClass("org.springframework.security.rsa.crypto.RsaSecretEncryptor") protected static class VanillaEncryptionConfiguration { @Autowired private KeyProperties key; @Bean @ConditionalOnMissingBean(TextEncryptor.class) public TextEncryptor textEncryptor() { return new EncryptorFactory(this.key.getSalt()).create(this.key.getKey()); } }
@Configuration @Conditional(MigrateOnConditionClass.class) public class MigrateRibbonCofiguration { @Bean public MigrateRibbonBeanPostProcessor migrateBeanPostProcessor(IClientConfig clientConfig) { return new MigrateRibbonBeanPostProcessor(clientConfig); } }
/** * @author xiaolongzuo */ @Configuration @Conditional(MigrateOnConditionMissingClass.class) @ConditionalOnMissingBean(DiscoveryClient.class) @EnableConfigurationProperties @AutoConfigureBefore(SimpleDiscoveryClientAutoConfiguration.class) public class AnsDiscoveryClientAutoConfiguration { @Bean public DiscoveryClient ansDiscoveryClient() { return new AnsDiscoveryClient(); } }
@AutoConfigureAfter(DataSourceAutoConfiguration.class) @Conditional(DevToolsDataSourceCondition.class) @Configuration public class DevToolsDataSourceAutoConfiguration {
@Component @Conditional(TitanCondition.class) public class TitanEntityManager { private final TitanSettings settings; public TitanEntityManager(final TitanSettings settings) { this.settings = settings; } @SuppressWarnings({"rawtypes", "unchecked"}) @Bean public DataSource datasource() throws Exception { Class clazz = Class.forName("com.ctrip.datasource.configure.DalDataSourceFactory"); Object obj = clazz.newInstance(); Method method = clazz.getMethod("createDataSource", new Class[] {String.class, String.class}); DataSource ds = ((DataSource) method.invoke(obj, new Object[] {settings.getTitanDbname(), settings.getTitanUrl()})); Tracer.logEvent("Apollo.Datasource.Titan", settings.getTitanDbname()); return ds; } }
public static boolean matches(ConditionContext context) { Class<AuthorizationServerEndpointsConfigurationBeanCondition> type = AuthorizationServerEndpointsConfigurationBeanCondition.class; Conditional conditional = AnnotationUtils.findAnnotation(type, Conditional.class); StandardAnnotationMetadata metadata = new StandardAnnotationMetadata(type); for (Class<? extends Condition> conditionType : conditional.value()) { Condition condition = BeanUtils.instantiateClass(conditionType); if (condition.matches(context, metadata)) { return true; } } return false; }
@Configuration @Conditional(MailMonitorCondition.class) protected static class MailMonitorConfig { @Autowired NettyRpcProperties nettyRpcProperties; @Bean public SmtpEventHandler smtpEventHandler() { SmtpEventHandler smtpEventHandler = new SmtpEventHandler( nettyRpcProperties ); return smtpEventHandler; } }
/** * @author xiaolongzuo */ @Configuration @Conditional(MigrateOnConditionMissingClass.class) public class AnsRibbonClientConfiguration { @Bean @ConditionalOnMissingBean public ServerList<?> ansRibbonServerList(IClientConfig config) { AnsServerList serverList = new AnsServerList(config.getClientName()); return serverList; } }
@Configuration @ConditionalOnWebApplication @ConditionalOnCloudPlatform(CloudPlatform.CLOUD_FOUNDRY) @Conditional(SpringBootAdminClientEnabledCondition.class) @EnableConfigurationProperties(CloudFoundryApplicationProperties.class) @AutoConfigureBefore({SpringBootAdminClientAutoConfiguration.class}) public class SpringBootAdminClientCloudFoundryAutoConfiguration { @Bean @ConditionalOnMissingBean public CloudFoundryMetadataContributor cloudFoundryMetadataContributor(CloudFoundryApplicationProperties cloudFoundryApplicationProperties) { return new CloudFoundryMetadataContributor(cloudFoundryApplicationProperties); } @Bean @ConditionalOnMissingBean public CloudFoundryApplicationFactory applicationFactory(InstanceProperties instance, ManagementServerProperties management, ServerProperties server, PathMappedEndpoints pathMappedEndpoints, WebEndpointProperties webEndpoint, MetadataContributor metadataContributor, CloudFoundryApplicationProperties cfApplicationProperties) { return new CloudFoundryApplicationFactory(instance, management, server, pathMappedEndpoints, webEndpoint, metadataContributor, cfApplicationProperties); } }
@Configuration @ConditionalOnBean(CamelAutoConfiguration.class) @AutoConfigureAfter({ CamelAutoConfiguration.class, CamelCloudAutoConfiguration.class, RibbonAutoConfiguration.class }) @Conditional(CamelCloudNetflixAutoConfiguration.Condition.class) public class CamelCloudNetflixAutoConfiguration { // ******************************* // Condition // ******************************* public static class Condition extends GroupCondition { public Condition() { super( "camel.cloud", "camel.cloud.netflix" ); } } }
@Conditional(RegisterBeanPhaseCondition.class) public static class RegisterBeanPhaseConditionConfiguration extends BaseConfiguration { }
public static boolean matches(ConditionContext context) { Class<AuthorizationServerEndpointsConfigurationBeanCondition> type = AuthorizationServerEndpointsConfigurationBeanCondition.class; Conditional conditional = AnnotationUtils.findAnnotation(type, Conditional.class); StandardAnnotationMetadata metadata = new StandardAnnotationMetadata(type); for (Class<? extends Condition> conditionType : conditional.value()) { Condition condition = BeanUtils.instantiateClass(conditionType); if (condition.matches(context, metadata)) { return true; } } return false; }
@Configuration @EnableConfigurationProperties @Conditional(MigrateOnConditionMissingClass.class) @ConditionalOnClass(name = "org.springframework.boot.web.context.WebServerInitializedEvent") @ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true) @ConditionalOnAnsEnabled @AutoConfigureAfter(AutoServiceRegistrationAutoConfiguration.class) public class AnsAutoConfiguration {
@Configuration @Conditional(SinkOnlyCondition.class) protected static class SinkConfiguration { @Autowired private StreamConfigurationProperties properties; public SinkConfiguration() { } @Bean public StreamListeningConsumerInvoker consumerInvoker(FunctionCatalog registry, FunctionInspector functionInspector, @Lazy CompositeMessageConverterFactory compositeMessageConverterFactory) { return new StreamListeningConsumerInvoker(registry, functionInspector, compositeMessageConverterFactory, properties.getSink().getName(), properties.isShared()); } }
@Configuration @Conditional(NoBeanOneCondition.class) static class BeanTwoConfiguration { @Bean public ExampleBean bean2() { return new ExampleBean(); } }
@Configuration @EnableConfigurationProperties @Conditional(MigrateOnConditionClass.class) @ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true) @ConditionalOnAnsEnabled public class MigrationAutoconfiguration { @Bean public MigrateServiceRegistry migrationManger(AnsProperties ansProperties, ApplicationContext applicationContext) { return new MigrateServiceRegistry(ansProperties, applicationContext); } @Bean public MigrateRefreshEventListener migrateRefreshEventListener( Environment environment, @Qualifier(value = "springClientFactory") NamedContextFactory namedContextFactory) { return new MigrateRefreshEventListener(environment, namedContextFactory); } }
@Configuration @AutoConfigureAfter(RibbonAutoConfiguration.class) @AutoConfigureBefore(CamelSpringCloudServiceRegistryAutoConfiguration.class) @Conditional(CamelCloudNetflixServiceLoadBalancerAutoConfiguration.Condition.class) public class CamelCloudNetflixServiceLoadBalancerAutoConfiguration { @ConditionalOnBean(LoadBalancerClient.class) @ConditionalOnMissingBean @Bean("netflix-client-load-balancer-adapter") public CamelSpringCloudServiceLoadBalancer.LoadBalancerClientAdapter netflixClientLoadBalancerAdapter(List<ConversionService> conversionServices) { return client -> new CamelCloudNetflixServiceLoadBalancer(client, conversionServices); } // ******************************* // Condition // ******************************* public static class Condition extends GroupCondition { public Condition() { super( "camel.cloud", "camel.cloud.netflix" ); } } }
@Conditional(ParseConfigurationPhaseCondition.class) public static class ParseConfigurationPhaseConditionConfiguration extends BaseConfiguration { }
@Configuration @ConditionalOnMissingBean(name = ZipkinAutoConfiguration.SENDER_BEAN_NAME) @Conditional(ZipkinSenderCondition.class) @EnableConfigurationProperties(ZipkinSenderProperties.class) class ZipkinRestTemplateSenderConfiguration { @Autowired ZipkinUrlExtractor extractor;