3 回答
TA贡献1853条经验 获得超6个赞
Spring Boot 应用程序的入口点是一个SpringApplication
对象。您可以通过其setApplicationContextClass(Class)
方法选择要使用的实现。它的 javadoc 状态
ApplicationContext
设置将要创建的 Spring 的类型。如果未指定,则默认DEFAULT_SERVLET_WEB_CONTEXT_CLASS
为基于 Web 的应用程序AnnotationConfigApplicationContext
或非基于 Web 的应用程序。
如果您不使用该方法,它会列出默认值,即。
org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext
用于基于 Web 的应用程序和
org.springframework.context.annotation.AnnotationConfigApplicationContext
用于非基于 Web 的应用程序。
反应式网络环境也有一个默认值。
TA贡献1790条经验 获得超9个赞
Spring boot 创建了一种与嵌入式服务器集成的新型ApplicationContext
调用。WebServerApplicationContext
它进一步分为两种实现类别,一种用于 Servlet 堆栈(ServletWebServerApplicationContext),另一种用于 Webflux 反应式堆栈(ReactiveWebServerApplicationContext
)。
这个新上下文的显着区别在于它将在引导上下文期间创建和管理嵌入式服务器。所以你可以看到这个上下文将返回一个WebServer
具有以下接口的。
public interface WebServer {
void start() throws WebServerException;
void stop() throws WebServerException;
int getPort();
}
WebServer
可以是、、或等JettyWebServer
,具体取决于在类路径中找到的嵌入式服务器。NettyWebServer
TomcatWebServer
UndertowWebServer
TA贡献1993条经验 获得超5个赞
这取决于您的类路径,例如,如果您正在创建一个 Web 应用程序,它可能是AnnotationConfigWebApplicationContext
获取 ApplicationContext 并在其上应用 getClass() 方法来检查它的实现。
添加回答
举报