Merge pull request #45007 from dmytrodanilenkov
* pr/45007-squash: Polish "Add missing attributes to ServletRegistration annotation" Add missing attributes to ServletRegistration annotation Closes gh-45007
This commit is contained in:
@@ -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<ServletContextInitializer> {
|
||||
@@ -320,6 +321,10 @@ public class ServletContextInitializerBeans extends AbstractCollection<ServletCo
|
||||
bean.setIgnoreRegistrationFailure(registration.ignoreRegistrationFailure());
|
||||
bean.setLoadOnStartup(registration.loadOnStartup());
|
||||
bean.setUrlMappings(Arrays.asList(registration.urlMappings()));
|
||||
for (WebInitParam param : registration.initParameters()) {
|
||||
bean.addInitParameter(param.name(), param.value());
|
||||
}
|
||||
bean.setMultipartConfig(new MultipartConfigElement(registration.multipartConfig()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,6 +23,8 @@ import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import jakarta.servlet.Servlet;
|
||||
import jakarta.servlet.annotation.MultipartConfig;
|
||||
import jakarta.servlet.annotation.WebInitParam;
|
||||
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.core.annotation.AliasFor;
|
||||
@@ -33,6 +35,7 @@ import org.springframework.core.annotation.Order;
|
||||
* annotation-based alternative to {@link ServletRegistrationBean}.
|
||||
*
|
||||
* @author Moritz Halbritter
|
||||
* @author Dmytro Danilenkov
|
||||
* @since 3.5.0
|
||||
* @see ServletRegistrationBean
|
||||
*/
|
||||
@@ -87,4 +90,16 @@ public @interface ServletRegistration {
|
||||
*/
|
||||
int loadOnStartup() default -1;
|
||||
|
||||
/**
|
||||
* Init parameters to be used with the servlet.
|
||||
* @return the init parameters
|
||||
*/
|
||||
WebInitParam[] initParameters() default {};
|
||||
|
||||
/**
|
||||
* The multipart configuration.
|
||||
* @return the multipart configuration
|
||||
*/
|
||||
MultipartConfig multipartConfig() default @MultipartConfig;
|
||||
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ import jakarta.servlet.FilterConfig;
|
||||
import jakarta.servlet.ServletContext;
|
||||
import jakarta.servlet.ServletRequest;
|
||||
import jakarta.servlet.ServletResponse;
|
||||
import jakarta.servlet.annotation.MultipartConfig;
|
||||
import jakarta.servlet.annotation.WebInitParam;
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
@@ -51,6 +52,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Andy Wilkinson
|
||||
* @author Moritz Halbritter
|
||||
* @author Daeho Kwon
|
||||
* @author Dmytro Danilenkov
|
||||
*/
|
||||
class ServletContextInitializerBeansTests {
|
||||
|
||||
@@ -127,6 +129,13 @@ class ServletContextInitializerBeansTests {
|
||||
assertThat(servletRegistrationBean.getServletName()).isEqualTo("test");
|
||||
assertThat(servletRegistrationBean.isAsyncSupported()).isFalse();
|
||||
assertThat(servletRegistrationBean.getUrlMappings()).containsExactly("/test/*");
|
||||
assertThat(servletRegistrationBean.getInitParameters())
|
||||
.containsExactlyInAnyOrderEntriesOf(Map.of("env", "test", "debug", "true"));
|
||||
assertThat(servletRegistrationBean.getMultipartConfig()).isNotNull();
|
||||
assertThat(servletRegistrationBean.getMultipartConfig().getLocation()).isEqualTo("/tmp");
|
||||
assertThat(servletRegistrationBean.getMultipartConfig().getMaxFileSize()).isEqualTo(1024);
|
||||
assertThat(servletRegistrationBean.getMultipartConfig().getMaxRequestSize()).isEqualTo(4096);
|
||||
assertThat(servletRegistrationBean.getMultipartConfig().getFileSizeThreshold()).isEqualTo(128);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -244,7 +253,11 @@ class ServletContextInitializerBeansTests {
|
||||
|
||||
@Bean
|
||||
@ServletRegistration(enabled = false, name = "test", asyncSupported = false, urlMappings = "/test/*",
|
||||
loadOnStartup = 1)
|
||||
loadOnStartup = 1,
|
||||
initParameters = { @WebInitParam(name = "env", value = "test"),
|
||||
@WebInitParam(name = "debug", value = "true") },
|
||||
multipartConfig = @MultipartConfig(location = "/tmp", maxFileSize = 1024, maxRequestSize = 4096,
|
||||
fileSizeThreshold = 128))
|
||||
TestServlet testServlet() {
|
||||
return new TestServlet();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user