diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointWebMvcChildContextConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointWebMvcChildContextConfiguration.java index b1dfb96bba6..0ab07400b38 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointWebMvcChildContextConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointWebMvcChildContextConfiguration.java @@ -50,6 +50,7 @@ import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomi import org.springframework.boot.context.embedded.ErrorPage; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.Ordered; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.web.servlet.DispatcherServlet; @@ -79,7 +80,7 @@ public class EndpointWebMvcChildContextConfiguration { @Configuration protected static class ServerCustomization implements - EmbeddedServletContainerCustomizer { + EmbeddedServletContainerCustomizer, Ordered { @Value("${error.path:/error}") private String errorPath = "/error"; @@ -93,6 +94,11 @@ public class EndpointWebMvcChildContextConfiguration { private ServerProperties server; + @Override + public int getOrder() { + return 0; + } + @Override public void customize(ConfigurableEmbeddedServletContainer container) { if (this.managementServerProperties == null) { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration.java index ef63bd56af1..68c84f97b74 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ErrorMvcAutoConfiguration.java @@ -70,7 +70,8 @@ import org.springframework.web.util.HtmlUtils; // available @AutoConfigureBefore(WebMvcAutoConfiguration.class) @Configuration -public class ErrorMvcAutoConfiguration implements EmbeddedServletContainerCustomizer { +public class ErrorMvcAutoConfiguration implements EmbeddedServletContainerCustomizer, + Ordered { @Value("${error.path:/error}") private String errorPath = "/error"; @@ -78,6 +79,11 @@ public class ErrorMvcAutoConfiguration implements EmbeddedServletContainerCustom @Autowired private ServerProperties properties; + @Override + public int getOrder() { + return 0; + } + @Bean @ConditionalOnMissingBean(value = ErrorAttributes.class, search = SearchStrategy.CURRENT) public DefaultErrorAttributes errorAttributes() { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java index 78ec69e2d25..69a50539abc 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java @@ -43,6 +43,7 @@ import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletCon import org.springframework.boot.context.embedded.undertow.UndertowEmbeddedServletContainerFactory; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.NestedConfigurationProperty; +import org.springframework.core.Ordered; import org.springframework.util.StringUtils; /** @@ -56,7 +57,7 @@ import org.springframework.util.StringUtils; * @author Ivan Sopov */ @ConfigurationProperties(prefix = "server", ignoreUnknownFields = false) -public class ServerProperties implements EmbeddedServletContainerCustomizer { +public class ServerProperties implements EmbeddedServletContainerCustomizer, Ordered { /** * Server HTTP port. @@ -96,6 +97,11 @@ public class ServerProperties implements EmbeddedServletContainerCustomizer { */ private final Map contextParameters = new HashMap(); + @Override + public int getOrder() { + return 0; + } + public Tomcat getTomcat() { return this.tomcat; } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.java index 4147f5507af..51a98ab0046 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerPropertiesAutoConfiguration.java @@ -28,6 +28,7 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.Ordered; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -41,10 +42,15 @@ import org.springframework.util.StringUtils; @EnableConfigurationProperties @ConditionalOnWebApplication public class ServerPropertiesAutoConfiguration implements ApplicationContextAware, - EmbeddedServletContainerCustomizer { + EmbeddedServletContainerCustomizer, Ordered { private ApplicationContext applicationContext; + @Override + public int getOrder() { + return 0; + } + @Bean @ConditionalOnMissingBean(search = SearchStrategy.CURRENT) public ServerProperties serverProperties() { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/WebSocketContainerCustomizer.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/WebSocketContainerCustomizer.java index 5f0afc3cbff..83a70d7a67d 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/WebSocketContainerCustomizer.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/websocket/WebSocketContainerCustomizer.java @@ -22,6 +22,7 @@ import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletCont import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.web.NonEmbeddedServletContainerFactory; +import org.springframework.core.Ordered; import org.springframework.core.ResolvableType; /** @@ -34,10 +35,15 @@ import org.springframework.core.ResolvableType; * @since 1.2.0 */ public abstract class WebSocketContainerCustomizer - implements EmbeddedServletContainerCustomizer { + implements EmbeddedServletContainerCustomizer, Ordered { private Log logger = LogFactory.getLog(getClass()); + @Override + public int getOrder() { + return 0; + } + @SuppressWarnings("unchecked") @Override public void customize(ConfigurableEmbeddedServletContainer container) {