/** * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration * Auto-configuration} enables tracing to HTTP requests with Spring WebFlux. * * @author Marcin Grzejszczak * @since 2.0.0 */ @Configuration @ConditionalOnProperty(value = "spring.sleuth.web.enabled", matchIfMissing = true) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) @ConditionalOnBean(Tracing.class) @AutoConfigureAfter(TraceWebAutoConfiguration.class) public class TraceWebFluxAutoConfiguration { @Bean public TraceWebFilter traceFilter(BeanFactory beanFactory) { return new TraceWebFilter(beanFactory); } }
@Configuration @ConditionalOnWebApplication @ConditionalOnClass({Servlet.class}) public static class PebbleViewResolverConfiguration { @Autowired private PebbleProperties properties; @Autowired private PebbleEngine pebbleEngine; @Bean @ConditionalOnMissingBean(name = "pebbleViewResolver") public PebbleViewResolver pebbleViewResolver() { PebbleViewResolver pvr = new PebbleViewResolver(); this.properties.applyToMvcViewResolver(pvr); pvr.setPebbleEngine(this.pebbleEngine); if (this.pebbleEngine.getLoader() instanceof ClasspathLoader) { // classpathloader doesn't like leading slashes in paths pvr.setPrefix(stripLeadingSlash(this.properties.getPrefix())); } return pvr; } }
@Configuration @ConditionalOnWebApplication(type = Type.REACTIVE) public static class ReactiveConfiguration { @Bean @ConditionalOnMissingBean public ApplicationFactory applicationFactory(InstanceProperties instance, ManagementServerProperties management, ServerProperties server, PathMappedEndpoints pathMappedEndpoints, WebEndpointProperties webEndpoint, MetadataContributor metadataContributor) { return new DefaultApplicationFactory(instance, management, server, pathMappedEndpoints, webEndpoint, metadataContributor ); } }
@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 ); } }
@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 @ConditionalOnProperty(name = "io.syndesis.connector.webhook.servlet.enabled", matchIfMissing = true) @ConditionalOnWebApplication public class WebhookServletAutoConfiguration { @Bean public ServletRegistrationBean servletRegistrationBean() { ServletRegistrationBean mapping = new ServletRegistrationBean(); mapping.setServlet(new CamelHttpTransportServlet()); mapping.addUrlMappings("/webhook/*"); mapping.setName("CamelServlet"); mapping.setLoadOnStartup(1); return mapping; } }
/** * {@link Person} 自动装配 * * @author <a href="mailto:mercyblitz@gmail.com">Mercy</a> * @see * @since 2017.09.16 */ //@Configuration @ConditionalOnWebApplication @ConditionalOnProperty(prefix = "person", name = "enabled", havingValue = "true") @AutoConfigureAfter(EmbeddedServletContainerAutoConfiguration.class) public class PersonAutoConfiguration { @ConfigurationProperties(prefix = "person") @Bean public Person person() { return new Person(); } // @Bean // public PersonRestController personRestController(Person person) { // return new PersonRestController(person); // } }
/** * @author xiaolongzuo */ @ConditionalOnWebApplication @ConditionalOnClass(Endpoint.class) public class AnsEndpointAutoConfiguration { @Bean public AnsEndpoint ansEndpoint(AnsProperties ansProperties) { return new AnsEndpoint(ansProperties); } }
/** * Exclusive {@link ViewResolver} {@link Configuration} * * @author <a href="mailto:mercyblitz@gmail.com">Mercy</a> * @see ViewResolver * @see Configuration * @since 2017.03.23 */ @ConditionalOnWebApplication @ConditionalOnProperty(VIEW_RESOLVERS_EXCLUSIVE_BEAN_NAME_PROPERTY_NAME) public class ExclusiveViewResolverConfiguration { @Bean public ExclusiveViewResolverApplicationListener exclusiveViewResolverApplicationListener (@Value("${" + VIEW_RESOLVERS_EXCLUSIVE_BEAN_NAME_PROPERTY_NAME + "}") String exclusiveViewResolverBeanName) { ExclusiveViewResolverApplicationListener applicationListener = new ExclusiveViewResolverApplicationListener(exclusiveViewResolverBeanName); return applicationListener; } }
@Configuration @ConditionalOnWebApplication @ConditionalOnClass({Servlet.class}) public static class PebbleViewResolverConfiguration { @Autowired private PebbleProperties properties; @Autowired private PebbleEngine pebbleEngine; @Bean @ConditionalOnMissingBean(name = "pebbleViewResolver") public PebbleViewResolver pebbleViewResolver() { PebbleViewResolver pvr = new PebbleViewResolver(); this.properties.applyToViewResolver(pvr); pvr.setPebbleEngine(this.pebbleEngine); if (this.pebbleEngine.getLoader() instanceof ClasspathLoader) { // classpathloader doesn't like leading slashes in paths pvr.setPrefix(stripLeadingSlash(this.properties.getPrefix())); } return pvr; } }
@Configuration @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) public static class ReactiveRestApiConfiguration { private final AdminServerProperties adminServerProperties; public ReactiveRestApiConfiguration(AdminServerProperties adminServerProperties) { this.adminServerProperties = adminServerProperties; } @Bean @ConditionalOnMissingBean public de.codecentric.boot.admin.server.web.reactive.InstancesProxyController instancesProxyController( InstanceRegistry instanceRegistry, InstanceWebClient instanceWebClient) { return new de.codecentric.boot.admin.server.web.reactive.InstancesProxyController( adminServerProperties.getContextPath(), adminServerProperties.getInstanceProxy().getIgnoredHeaders(), instanceRegistry, instanceWebClient ); } @Bean public org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerMapping adminHandlerMapping( RequestedContentTypeResolver webFluxContentTypeResolver) { org.springframework.web.reactive.result.method.annotation.RequestMappingHandlerMapping mapping = new de.codecentric.boot.admin.server.web.reactive.AdminControllerHandlerMapping( adminServerProperties.getContextPath()); mapping.setOrder(0); mapping.setContentTypeResolver(webFluxContentTypeResolver); return mapping; } }
@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; } }
@Configuration @ConditionalOnWebApplication @EnableConfigurationProperties(ServerSSLProperties.class) public class TennisStatsWebConfig implements WebMvcConfigurer { @Autowired(required = false) DownForMaintenanceInterceptor downForMaintenanceInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new RequestURLLoggingHandlerInterceptor()); if (downForMaintenanceInterceptor != null) registry.addInterceptor(downForMaintenanceInterceptor); } @Bean public ErrorAttributes errorAttributes() { return new TennisStatsErrorAttributes(); } }
@ConditionalOnWebApplication @ConditionalOnClass(Endpoint.class) public class SmsEndpointAutoConfiguration { @Bean public SmsEndpoint smsEndpoint() { return new SmsEndpoint(); } }
/** * @author yuhao.wang3 */ @ConditionalOnWebApplication @ConditionalOnProperty(name = "spring.layering-cache.layering-cache-servlet-enabled", havingValue = "true", matchIfMissing = false) public class LayeringCacheServletConfiguration { @Bean public ServletRegistrationBean statViewServletRegistrationBean(LayeringCacheProperties properties) { ServletRegistrationBean registrationBean = new ServletRegistrationBean(); registrationBean.setServlet(new LayeringCacheServlet()); registrationBean.addUrlMappings(!StringUtils.isEmpty(properties.getUrlPattern()) ? properties.getUrlPattern() : "/layering-cache/*"); registrationBean.addInitParameter("loginUsername", StringUtils.isEmpty(properties.getLoginUsername()) ? "admin" : properties.getLoginUsername()); registrationBean.addInitParameter("loginPassword", StringUtils.isEmpty(properties.getLoginPassword()) ? "admin" : properties.getLoginPassword()); registrationBean.addInitParameter("enableUpdate", properties.isEnableUpdate()+""); if (!StringUtils.isEmpty(properties.getAllow())) { registrationBean.addInitParameter("allow", properties.getAllow()); } if (!StringUtils.isEmpty(properties.getDeny())) { registrationBean.addInitParameter("deny", properties.getDeny()); } return registrationBean; } }
@Configuration @ConditionalOnWebApplication @ConditionalOnProperty(name = "spring.cloud.sentinel.enabled", matchIfMissing = true) @EnableConfigurationProperties(SentinelProperties.class) public class SentinelWebAutoConfiguration {
@Configuration @ConditionalOnClass(EmptyResultDataAccessException.class) @ConditionalOnWebApplication protected static class ErrorHandlerConfiguration { @Bean public DataErrorHandler dataErrorHandler() { return new DataErrorHandler(); } }
/** * Initializr web configuration. */ @Configuration @ConditionalOnWebApplication static class InitializrWebConfiguration { @Bean public InitializrWebConfig initializrWebConfig() { return new InitializrWebConfig(); } @Bean @ConditionalOnMissingBean public MainController initializrMainController( InitializrMetadataProvider metadataProvider, TemplateRenderer templateRenderer, ResourceUrlProvider resourceUrlProvider, ProjectGenerator projectGenerator, DependencyMetadataProvider dependencyMetadataProvider) { return new MainController(metadataProvider, templateRenderer, resourceUrlProvider, projectGenerator, dependencyMetadataProvider); } @Bean @ConditionalOnMissingBean public UiController initializrUiController( InitializrMetadataProvider metadataProvider) { return new UiController(metadataProvider); } }
/** * Register Springfox plugins. */ @Configuration @ConditionalOnWebApplication @ConditionalOnBean(Docket.class) @AutoConfigureAfter(SwaggerAutoConfiguration.class) public class SwaggerPluginsAutoConfiguration { @Configuration @ConditionalOnClass(Pageable.class) public static class SpringPagePluginConfiguration { @Bean @ConditionalOnMissingBean public PageableParameterBuilderPlugin pageableParameterBuilderPlugin(TypeNameExtractor typeNameExtractor, TypeResolver typeResolver) { return new PageableParameterBuilderPlugin(typeNameExtractor, typeResolver); } } }
/** * @author xiaolongzuo */ @ConditionalOnWebApplication @ConditionalOnClass(Endpoint.class) public class ScxEndpointAutoConfiguration { @Bean @ConditionalOnMissingBean @ConditionalOnEnabledEndpoint public ScxEndpoint scxEndpoint(EdasProperties edasProperties, ScxProperties scxProperties) { return new ScxEndpoint(edasProperties, scxProperties); } }