SpringApplication
会尝试创建正确类型的ApplicationContext
。用于确定WebApplicationType
的算法如下:
- 如果Spring MVC存在,就会使用
AnnotationConfigServletWebServerApplicationContext
。 - 如果Spring MVC不存在,但Spring WebFlux存在,就会使用
AnnotationConfigReactiveWebServerApplicationContext
。 - 否则,使用
AnnotationConfigApplicationContext
。
这句话的意思是,如果在同一应用程序中同时使用Spring MVC和Spring WebFlux的新WebClient
,默认情况下将使用Spring MVC。但是,可以通过调用setWebApplicationType(WebApplicationType)
方法来覆盖这个默认设置。
通过调用 setApplicationContextFactory(…)
方法,可以完全控制所使用的 ApplicationContext
类型。
提示:在使用JUnit测试中的SpringApplication
时,通常希望调用setWebApplicationType(WebApplicationType.NONE)
。