/** * @author zhouhao */ @Configuration @AutoConfigureAfter(AuthorizingHandlerAutoConfiguration.class) public class AopAuthorizeAutoConfiguration { @Bean @ConditionalOnMissingBean(AopMethodAuthorizeDefinitionParser.class) public DefaultAopMethodAuthorizeDefinitionParser defaultAopMethodAuthorizeDefinitionParser() { return new DefaultAopMethodAuthorizeDefinitionParser(); } @Bean @ConfigurationProperties(prefix = "hsweb.authorize") public AopAuthorizingController aopAuthorizingController(AuthorizingHandler authorizingHandler, AopMethodAuthorizeDefinitionParser aopMethodAuthorizeDefinitionParser) { return new AopAuthorizingController(authorizingHandler, aopMethodAuthorizeDefinitionParser); } }
/** * * @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(); } }
@Configuration @AutoConfigureBefore(AxonAutoConfiguration.class) @AutoConfigureAfter(name = "org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration") @ConditionalOnClass(name = "com.fasterxml.jackson.databind.ObjectMapper") @EnableConfigurationProperties(value = SerializerProperties.class) public class ObjectMapperAutoConfiguration { @Bean("defaultAxonObjectMapper") @ConditionalOnMissingBean @ConditionalOnExpression("'${axon.serializer.general}' == 'jackson' || '${axon.serializer.events}' == 'jackson' || '${axon.serializer.messages}' == 'jackson'") public ObjectMapper defaultAxonObjectMapper() { return new ObjectMapper().findAndRegisterModules(); } }
@Configuration @EnableConfigurationProperties @ConditionalOnBean(SpringClientFactory.class) @ConditionalOnProperty(value = "spring.cloud.kubernetes.ribbon.enabled", matchIfMissing = true) @AutoConfigureAfter(RibbonAutoConfiguration.class) @RibbonClients(defaultConfiguration = KubernetesRibbonClientConfiguration.class) public class RibbonKubernetesAutoConfiguration { }
/** * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration * Auto-configuration} that sets up Ribbon for Nacos. */ @Configuration @EnableConfigurationProperties @ConditionalOnBean(SpringClientFactory.class) @ConditionalOnRibbonNacos @AutoConfigureAfter(RibbonAutoConfiguration.class) @RibbonClients(defaultConfiguration = NacosRibbonClientConfiguration.class) public class RibbonNacosAutoConfiguration { }
/** * @author Spencer Gibb */ @Configuration @ConditionalOnClass({LoadBalancerClient.class, RibbonAutoConfiguration.class, DispatcherHandler.class}) @AutoConfigureAfter(RibbonAutoConfiguration.class) @EnableConfigurationProperties(LoadBalancerProperties.class) public class GatewayLoadBalancerClientAutoConfiguration { // GlobalFilter beans @Bean @ConditionalOnBean(LoadBalancerClient.class) @ConditionalOnMissingBean(LoadBalancerClientFilter.class) public LoadBalancerClientFilter loadBalancerClientFilter(LoadBalancerClient client, LoadBalancerProperties properties) { return new LoadBalancerClientFilter(client, properties); } }
/** * {@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); } }
@AutoConfigureAfter(TransactionAutoConfiguration.class) @AutoConfigureBefore(AxonAutoConfiguration.class) @Configuration public class NoOpTransactionAutoConfiguration { @Bean @ConditionalOnMissingBean(TransactionManager.class) public TransactionManager axonTransactionManager() { return NoTransactionManager.INSTANCE; } }
@Configuration @ComponentScan("org.hswebframework.web.dao.mybatis") @MapperScan(value = "org.hswebframework.web.dao" , markerInterface = Dao.class , sqlSessionFactoryRef = "sqlSessionFactory") @AutoConfigureAfter(MyBatisAutoConfiguration.class) @EnableConfigurationProperties(MybatisProperties.class) public class MybatisDaoAutoConfiguration { @Bean
/** * Dubbo {@link DubboHealthIndicator} Auto Configuration * * * @see HealthIndicator * @since 1.0.0 */ @Configuration @ConditionalOnClass({HealthIndicator.class}) @AutoConfigureBefore({EndpointAutoConfiguration.class}) @AutoConfigureAfter(DubboAutoConfiguration.class) @ConditionalOnEnabledHealthIndicator("dubbo") @EnableConfigurationProperties(DubboHealthIndicatorProperties.class) public class DubboHealthIndicatorAutoConfiguration { @Bean @ConditionalOnMissingBean public DubboHealthIndicator dubboHealthIndicator() { return new DubboHealthIndicator(); } }
/** * * @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(); } }
@Configuration @ConditionalOnWebApplication(type = Type.SERVLET) @AutoConfigureAfter(DispatcherServletAutoConfiguration.class) public static class ServletConfiguration { @Bean @ConditionalOnMissingBean public ApplicationFactory applicationFactory(InstanceProperties instance, ManagementServerProperties management, ServerProperties server, ServletContext servletContext, PathMappedEndpoints pathMappedEndpoints, WebEndpointProperties webEndpoint, MetadataContributor metadataContributor, DispatcherServletPath dispatcherServletPath) { return new ServletApplicationFactory(instance, management, server, servletContext, pathMappedEndpoints, webEndpoint, metadataContributor, dispatcherServletPath ); } }
/** * Registers beans related to task scheduling. * * @author Michal Chmielarz, 4financeIT * @author Spencer Gibb * @since 1.0.0 * @see TraceSchedulingAspect */ @Configuration @EnableAspectJAutoProxy @ConditionalOnProperty(value = "spring.sleuth.scheduled.enabled", matchIfMissing = true) @ConditionalOnBean(Tracing.class) @AutoConfigureAfter(TraceAutoConfiguration.class) @EnableConfigurationProperties(SleuthSchedulingProperties.class) public class TraceSchedulingAutoConfiguration { @Bean @ConditionalOnClass(name = "org.aspectj.lang.ProceedingJoinPoint") public TraceSchedulingAspect traceSchedulingAspect(Tracer tracer, SleuthSchedulingProperties sleuthSchedulingProperties) { return new TraceSchedulingAspect(tracer, Pattern.compile(sleuthSchedulingProperties.getSkipPattern())); } }
/** * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration * Auto-configuration} that enables support for RxJava via {@link RxJavaSchedulersHook}. * * @author Shivang Shah * @since 1.0.0 */ @Configuration @AutoConfigureAfter(TraceAutoConfiguration.class) @ConditionalOnBean(Tracing.class) @ConditionalOnClass(RxJavaSchedulersHook.class) @ConditionalOnProperty(value = "spring.sleuth.rxjava.schedulers.hook.enabled", matchIfMissing = true) @EnableConfigurationProperties(SleuthRxJavaSchedulersProperties.class) public class RxJavaAutoConfiguration { @Bean SleuthRxJavaSchedulersHook sleuthRxJavaSchedulersHook(Tracer tracer, SleuthRxJavaSchedulersProperties sleuthRxJavaSchedulersProperties) { return new SleuthRxJavaSchedulersHook(tracer, Arrays.asList(sleuthRxJavaSchedulersProperties.getIgnoredthreads())); } }
/** * {@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); } }
/** * Auto configuration for {@link EventProcessingModule}. * * @author Milan Savic * @since 4.0 */ @Configuration @AutoConfigureAfter(name = { "org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration", "org.axonframework.springboot.autoconfig.JpaAutoConfiguration", "org.axonframework.springboot.autoconfig.JpaEventStoreAutoConfiguration", "org.axonframework.springboot.autoconfig.ObjectMapperAutoConfiguration" }) public class EventProcessingAutoConfiguration { @Bean @ConditionalOnMissingBean({EventProcessingModule.class, EventProcessingConfiguration.class}) public EventProcessingModule eventProcessingModule() { return new EventProcessingModule(); } }
@Configuration @AutoConfigureAfter({DataSourceAutoConfiguration.class, TaskExecutionAutoConfiguration.class}) @EnableConfigurationProperties(ActivitiProperties.class) public class ProcessEngineAutoConfiguration extends AbstractProcessEngineAutoConfiguration {
@Configuration @EnableConfigurationProperties @ConditionalOnNacosDiscoveryEnabled @ConditionalOnClass(name = "org.springframework.boot.web.servlet.context.ServletWebServerInitializedEvent") @ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true) @AutoConfigureAfter(AutoServiceRegistrationAutoConfiguration.class) public class NacosDiscoveryAutoConfiguration {
/** * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration * Auto-configuration} for resilience4j-metrics. */ @Configuration @AutoConfigureAfter(value = RateLimiterAutoConfiguration.class) @ConditionalOnClass(RateLimiterExports.class) public class RateLimiterPrometheusAutoConfiguration { @Bean public RateLimiterExports rateLimiterPrometheusCollector(RateLimiterRegistry rateLimiterRegistry){ RateLimiterExports collector = RateLimiterExports.ofRateLimiterRegistry(rateLimiterRegistry); collector.register(); return collector; } }
@Configuration @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) @AutoConfigureAfter(WebMvcAutoConfiguration.class) public static class ServletRestApiConfirguation { private final AdminServerProperties adminServerProperties; public ServletRestApiConfirguation(AdminServerProperties adminServerProperties) { this.adminServerProperties = adminServerProperties; } @Bean @ConditionalOnMissingBean public InstancesProxyController instancesProxyController(InstanceRegistry instanceRegistry, InstanceWebClient instanceWebClient) { return new InstancesProxyController( adminServerProperties.getContextPath(), adminServerProperties.getInstanceProxy().getIgnoredHeaders(), instanceRegistry, instanceWebClient ); } @Bean public org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping adminHandlerMapping( ContentNegotiationManager contentNegotiationManager) { org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping mapping = new de.codecentric.boot.admin.server.web.servlet.AdminControllerHandlerMapping( adminServerProperties.getContextPath()); mapping.setOrder(0); mapping.setContentNegotiationManager(contentNegotiationManager); return mapping; } }