Add "onClass" condition on web server auto-configurations

This commit adds new Conditional annotations on auto-configurations
creating the Servlet/Reactive web servers. These conditions only depend
on request primitives used by the servers themselves and aren't
framework specific.

Closes gh-10163
This commit is contained in:
Brian Clozel 2017-09-05 11:51:11 +02:00
parent 5111b03aa3
commit 27c1b5eb4c
2 changed files with 5 additions and 0 deletions

View File

@ -24,6 +24,7 @@ import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.web.ServerProperties;
@ -35,6 +36,7 @@ import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.Ordered;
import org.springframework.core.type.AnnotationMetadata;
import org.springframework.http.ReactiveHttpInputMessage;
import org.springframework.util.ObjectUtils;
/**
@ -45,6 +47,7 @@ import org.springframework.util.ObjectUtils;
*/
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
@Configuration
@ConditionalOnClass(ReactiveHttpInputMessage.class)
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
@EnableConfigurationProperties(ServerProperties.class)
@Import({ ReactiveWebServerAutoConfiguration.BeanPostProcessorsRegistrar.class,

View File

@ -17,6 +17,7 @@
package org.springframework.boot.autoconfigure.web.servlet;
import javax.servlet.Servlet;
import javax.servlet.ServletRequest;
import io.undertow.Undertow;
import org.apache.catalina.startup.Tomcat;
@ -66,6 +67,7 @@ import org.springframework.util.ObjectUtils;
*/
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
@Configuration
@ConditionalOnClass(ServletRequest.class)
@ConditionalOnWebApplication(type = Type.SERVLET)
@EnableConfigurationProperties(ServerProperties.class)
@Import(BeanPostProcessorsRegistrar.class)