This commit is contained in:
Phillip Webb 2025-04-07 15:07:22 -07:00
parent 3c806d2b31
commit 57a5fb075d
2 changed files with 12 additions and 17 deletions

View File

@ -251,7 +251,6 @@ class TaskExecutionAutoConfigurationTests {
.containsKeys("customTaskExecutor", "applicationTaskExecutor");
assertThat(context).hasBean("taskExecutor");
assertThat(context.getBean("taskExecutor")).isSameAs(context.getBean("applicationTaskExecutor"));
});
}
@ -354,7 +353,7 @@ class TaskExecutionAutoConfigurationTests {
.withPropertyValues("spring.task.execution.thread-name-prefix=auto-task-",
"spring.task.execution.mode=force")
.withBean("taskExecutor", Executor.class, () -> createCustomAsyncExecutor("custom-task-"),
(bd) -> bd.setPrimary(true))
(beanDefinition) -> beanDefinition.setPrimary(true))
.withUserConfiguration(AsyncConfiguration.class, TestBean.class)
.run((context) -> {
assertThat(context).hasSingleBean(AsyncConfigurer.class);

View File

@ -41,6 +41,7 @@ import org.apache.commons.logging.LogFactory;
import org.springframework.aop.scope.ScopedProxyUtils;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
import org.springframework.core.annotation.Order;
import org.springframework.util.Assert;
@ -198,20 +199,18 @@ public class ServletContextInitializerBeans extends AbstractCollection<ServletCo
}
private int getOrder(Object value) {
return new AnnotationAwareOrderComparator() {
@Override
public int getOrder(Object obj) {
return super.getOrder(obj);
}
}.getOrder(value);
Integer order = findOrder(value);
return (order != null) ? order : Ordered.LOWEST_PRECEDENCE;
}
private Integer findOrder(Object value) {
return new AnnotationAwareOrderComparator() {
@Override
public Integer findOrder(Object obj) {
return super.findOrder(obj);
}
}.findOrder(value);
}
@ -318,9 +317,7 @@ public class ServletContextInitializerBeans extends AbstractCollection<ServletCo
bean.setAsyncSupported(registration.asyncSupported());
bean.setIgnoreRegistrationFailure(registration.ignoreRegistrationFailure());
bean.setLoadOnStartup(registration.loadOnStartup());
if (registration.urlMappings().length > 0) {
bean.setUrlMappings(Arrays.asList(registration.urlMappings()));
}
bean.setUrlMappings(Arrays.asList(registration.urlMappings()));
}
}
@ -363,12 +360,8 @@ public class ServletContextInitializerBeans extends AbstractCollection<ServletCo
}
bean.setIgnoreRegistrationFailure(registration.ignoreRegistrationFailure());
bean.setMatchAfter(registration.matchAfter());
if (registration.servletNames().length > 0) {
bean.setServletNames(Arrays.asList(registration.servletNames()));
}
if (registration.urlPatterns().length > 0) {
bean.setUrlPatterns(Arrays.asList(registration.urlPatterns()));
}
bean.setServletNames(Arrays.asList(registration.servletNames()));
bean.setUrlPatterns(Arrays.asList(registration.urlPatterns()));
}
}
@ -387,6 +380,9 @@ public class ServletContextInitializerBeans extends AbstractCollection<ServletCo
}
/**
* Tracks seen initializers.
*/
private static final class Seen {
private final Map<Class<?>, Set<Object>> seen = new HashMap<>();