Avoid using reflection to create SpringApplication's context
Closes gh-22322
This commit is contained in:
@@ -110,7 +110,8 @@ public class SpringBootContextLoader extends AbstractContextLoader {
|
||||
else if (config instanceof ReactiveWebMergedContextConfiguration) {
|
||||
application.setWebApplicationType(WebApplicationType.REACTIVE);
|
||||
if (!isEmbeddedWebEnvironment(config)) {
|
||||
new ReactiveWebConfigurer().configure(application);
|
||||
application.setApplicationContextFactory(
|
||||
(webApplicationType) -> new GenericReactiveWebApplicationContext());
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -250,13 +251,11 @@ public class SpringBootContextLoader extends AbstractContextLoader {
|
||||
*/
|
||||
private static class WebConfigurer {
|
||||
|
||||
private static final Class<GenericWebApplicationContext> WEB_CONTEXT_CLASS = GenericWebApplicationContext.class;
|
||||
|
||||
void configure(MergedContextConfiguration configuration, SpringApplication application,
|
||||
List<ApplicationContextInitializer<?>> initializers) {
|
||||
WebMergedContextConfiguration webConfiguration = (WebMergedContextConfiguration) configuration;
|
||||
addMockServletContext(initializers, webConfiguration);
|
||||
application.setApplicationContextClass(WEB_CONTEXT_CLASS);
|
||||
application.setApplicationContextFactory((webApplicationType) -> new GenericWebApplicationContext());
|
||||
}
|
||||
|
||||
private void addMockServletContext(List<ApplicationContextInitializer<?>> initializers,
|
||||
@@ -268,19 +267,6 @@ public class SpringBootContextLoader extends AbstractContextLoader {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Inner class to configure {@link ReactiveWebMergedContextConfiguration}.
|
||||
*/
|
||||
private static class ReactiveWebConfigurer {
|
||||
|
||||
private static final Class<GenericReactiveWebApplicationContext> WEB_CONTEXT_CLASS = GenericReactiveWebApplicationContext.class;
|
||||
|
||||
void configure(SpringApplication application) {
|
||||
application.setApplicationContextClass(WEB_CONTEXT_CLASS);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Adapts a {@link ContextCustomizer} to a {@link ApplicationContextInitializer} so
|
||||
* that it can be triggered via {@link SpringApplication}.
|
||||
|
||||
Reference in New Issue
Block a user