Skip to content

Commit 1f2c372

Browse files
committed
Polish
Signed-off-by: Daeho Kwon <[email protected]>
1 parent 4fd2056 commit 1f2c372

File tree

2 files changed

+13
-41
lines changed

2 files changed

+13
-41
lines changed

spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/ServletContextInitializerBeans.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -374,17 +374,13 @@ private void configureFromAnnotation(FilterRegistrationBean<Filter> bean, Filter
374374
bean.addInitParameter(param.name(), param.value());
375375
}
376376

377-
@SuppressWarnings("unchecked")
378-
Map<String, ServletRegistrationBean<?>> servletRegistrationBeans = (Map<String, ServletRegistrationBean<?>>) (Map<?, ?>) this.beanFactory
379-
.getBeansOfType(ServletRegistrationBean.class);
380-
381-
for (Class<?> servletClass : registration.servletRegistrationBeans()) {
382-
for (ServletRegistrationBean<?> registrationBean : servletRegistrationBeans.values()) {
383-
if (servletClass.isInstance(registrationBean.getServlet())) {
384-
bean.addServletRegistrationBeans(registrationBean);
377+
this.beanFactory.getBeanProvider(ServletRegistrationBean.class).forEach((servletRegistrationBean) -> {
378+
for (Class<?> servletClass : registration.servletRegistrationBeans()) {
379+
if (servletClass.isInstance(servletRegistrationBean.getServlet())) {
380+
bean.addServletRegistrationBeans(servletRegistrationBean);
385381
}
386382
}
387-
}
383+
});
388384
}
389385

390386
}

spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/ServletContextInitializerBeansTests.java

Lines changed: 8 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.boot.web.servlet;
1818

19+
import java.util.Collection;
20+
1921
import jakarta.servlet.DispatcherType;
2022
import jakarta.servlet.Filter;
2123
import jakarta.servlet.FilterChain;
@@ -140,6 +142,10 @@ void shouldApplyFilterRegistrationAnnotation() {
140142
assertThat(filterRegistrationBean.getUrlPatterns()).containsExactly("/test/*");
141143
assertThat(filterRegistrationBean.getInitParameters()).containsEntry("env", "test")
142144
.containsEntry("debug", "true");
145+
Collection<ServletRegistrationBean<?>> servletRegistrationBeans = filterRegistrationBean.getServletRegistrationBeans();
146+
assertThat(servletRegistrationBeans).hasSize(1);
147+
assertThat(servletRegistrationBeans.iterator().next().getServletName())
148+
.isEqualTo("testServletRegistrationBean");
143149

144150
});
145151
}
@@ -184,25 +190,6 @@ void shouldApplyOrderFromOrderAttribute() {
184190
.isEqualTo(ServletConfigurationWithAnnotationAndOrder.ORDER));
185191
}
186192

187-
@Test
188-
void shouldApplyServletRegistrationBeansInFilterRegistration() {
189-
load(FilterWithServletRegistrationBeansConfiguration.class);
190-
191-
ServletContextInitializerBeans initializerBeans = new ServletContextInitializerBeans(
192-
this.context.getBeanFactory(), TestServletContextInitializer.class);
193-
194-
FilterRegistrationBean<?> frb = initializerBeans.stream()
195-
.filter(FilterRegistrationBean.class::isInstance)
196-
.map(FilterRegistrationBean.class::cast)
197-
.filter((f) -> "testFilter".equals(f.getFilterName()))
198-
.findFirst()
199-
.orElseThrow();
200-
201-
assertThat(frb.getServletRegistrationBeans()).hasSize(1);
202-
assertThat(frb.getServletRegistrationBeans().iterator().next().getServletName())
203-
.isEqualTo("testServletRegistrationBean");
204-
}
205-
206193
private void load(Class<?>... configuration) {
207194
this.context = new AnnotationConfigApplicationContext(configuration);
208195
}
@@ -305,25 +292,14 @@ static class FilterConfigurationWithAnnotation {
305292
@FilterRegistration(enabled = false, name = "test", asyncSupported = false,
306293
dispatcherTypes = DispatcherType.ERROR, matchAfter = true, servletNames = "test",
307294
urlPatterns = "/test/*", initParameters = { @WebInitParam(name = "env", value = "test"),
308-
@WebInitParam(name = "debug", value = "true") })
295+
@WebInitParam(name = "debug", value = "true") }, servletRegistrationBeans = { TestServlet.class })
309296
TestFilter testFilter() {
310297
return new TestFilter();
311298
}
312299

313-
}
314-
315-
@Configuration(proxyBeanMethods = false)
316-
static class FilterWithServletRegistrationBeansConfiguration {
317-
318300
@Bean
319301
ServletRegistrationBean<TestServlet> testServletRegistrationBean() {
320-
return new ServletRegistrationBean<>(new TestServlet(), "/test");
321-
}
322-
323-
@Bean
324-
@FilterRegistration(name = "testFilter", servletRegistrationBeans = TestServlet.class)
325-
TestFilter testFilter() {
326-
return new TestFilter();
302+
return new ServletRegistrationBean<>(new TestServlet());
327303
}
328304

329305
}

0 commit comments

Comments
 (0)