diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java index 84642aff41c..195a707cd05 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java @@ -65,6 +65,7 @@ import org.springframework.util.StringUtils; * @author Brian Clozel * @author Moritz Halbritter * @author Daeho Kwon + * @author Dmytro Danilenkov * @since 1.4.0 */ public class ServletContextInitializerBeans extends AbstractCollection { @@ -320,6 +321,10 @@ public class ServletContextInitializerBeans extends AbstractCollection { + assertThat(bean.getServletName()).isEqualTo("extended"); + assertThat(bean.getUrlMappings()).containsExactly("/extended/*"); + assertThat(bean.getInitParameters()).containsEntry("hello", "world").containsEntry("flag", "true"); + assertThat(bean.getMultipartConfig()).isNotNull(); + assertThat(bean.getMultipartConfig().getLocation()).isEqualTo("/tmp"); + assertThat(bean.getMultipartConfig().getMaxFileSize()).isEqualTo(1024); + assertThat(bean.getMultipartConfig().getMaxRequestSize()).isEqualTo(4096); + assertThat(bean.getMultipartConfig().getFileSizeThreshold()).isEqualTo(128); + }); + + } + + private void assertThatSingleServletRegistration(ServletContextInitializerBeans initializerBeans, + ThrowingConsumer> code) { + assertThatSingleRegistration(initializerBeans, ServletRegistrationBean.class, code::acceptThrows); + } + private void load(Class... configuration) { this.context = new AnnotationConfigApplicationContext(configuration); } @@ -454,4 +479,19 @@ class ServletContextInitializerBeansTests { } + @Configuration(proxyBeanMethods = false) + static class ServletConfigurationWithExtendedAttributes { + + @Bean + @ServletRegistration(name = "extended", urlMappings = "/extended/*", + initParameters = { @WebInitParam(name = "hello", value = "world"), + @WebInitParam(name = "flag", value = "true") }, + multipartConfig = @MultipartConfig(location = "/tmp", maxFileSize = 1024, maxRequestSize = 4096, + fileSizeThreshold = 128)) + TestServlet testServletWithInitParametersAndMultipart() { + return new TestServlet(); + } + + } + }