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"); .containsKeys("customTaskExecutor", "applicationTaskExecutor");
assertThat(context).hasBean("taskExecutor"); assertThat(context).hasBean("taskExecutor");
assertThat(context.getBean("taskExecutor")).isSameAs(context.getBean("applicationTaskExecutor")); assertThat(context.getBean("taskExecutor")).isSameAs(context.getBean("applicationTaskExecutor"));
}); });
} }
@ -354,7 +353,7 @@ class TaskExecutionAutoConfigurationTests {
.withPropertyValues("spring.task.execution.thread-name-prefix=auto-task-", .withPropertyValues("spring.task.execution.thread-name-prefix=auto-task-",
"spring.task.execution.mode=force") "spring.task.execution.mode=force")
.withBean("taskExecutor", Executor.class, () -> createCustomAsyncExecutor("custom-task-"), .withBean("taskExecutor", Executor.class, () -> createCustomAsyncExecutor("custom-task-"),
(bd) -> bd.setPrimary(true)) (beanDefinition) -> beanDefinition.setPrimary(true))
.withUserConfiguration(AsyncConfiguration.class, TestBean.class) .withUserConfiguration(AsyncConfiguration.class, TestBean.class)
.run((context) -> { .run((context) -> {
assertThat(context).hasSingleBean(AsyncConfigurer.class); 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.aop.scope.ScopedProxyUtils;
import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.AnnotationAwareOrderComparator; import org.springframework.core.annotation.AnnotationAwareOrderComparator;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
import org.springframework.util.Assert; import org.springframework.util.Assert;
@ -198,20 +199,18 @@ public class ServletContextInitializerBeans extends AbstractCollection<ServletCo
} }
private int getOrder(Object value) { private int getOrder(Object value) {
return new AnnotationAwareOrderComparator() { Integer order = findOrder(value);
@Override return (order != null) ? order : Ordered.LOWEST_PRECEDENCE;
public int getOrder(Object obj) {
return super.getOrder(obj);
}
}.getOrder(value);
} }
private Integer findOrder(Object value) { private Integer findOrder(Object value) {
return new AnnotationAwareOrderComparator() { return new AnnotationAwareOrderComparator() {
@Override @Override
public Integer findOrder(Object obj) { public Integer findOrder(Object obj) {
return super.findOrder(obj); return super.findOrder(obj);
} }
}.findOrder(value); }.findOrder(value);
} }
@ -318,9 +317,7 @@ public class ServletContextInitializerBeans extends AbstractCollection<ServletCo
bean.setAsyncSupported(registration.asyncSupported()); bean.setAsyncSupported(registration.asyncSupported());
bean.setIgnoreRegistrationFailure(registration.ignoreRegistrationFailure()); bean.setIgnoreRegistrationFailure(registration.ignoreRegistrationFailure());
bean.setLoadOnStartup(registration.loadOnStartup()); 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.setIgnoreRegistrationFailure(registration.ignoreRegistrationFailure());
bean.setMatchAfter(registration.matchAfter()); bean.setMatchAfter(registration.matchAfter());
if (registration.servletNames().length > 0) { bean.setServletNames(Arrays.asList(registration.servletNames()));
bean.setServletNames(Arrays.asList(registration.servletNames())); bean.setUrlPatterns(Arrays.asList(registration.urlPatterns()));
}
if (registration.urlPatterns().length > 0) {
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 static final class Seen {
private final Map<Class<?>, Set<Object>> seen = new HashMap<>(); private final Map<Class<?>, Set<Object>> seen = new HashMap<>();