Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哪个ApplicationContext实现用于简单的spring引导应用程序?_Java_Spring_Spring Boot - Fatal编程技术网

Java 哪个ApplicationContext实现用于简单的spring引导应用程序?

Java 哪个ApplicationContext实现用于简单的spring引导应用程序?,java,spring,spring-boot,Java,Spring,Spring Boot,我学到了: “应用程序上下文”的三种常用实现是− FileSystemXmlApplicationContext− 此容器加载定义 从XML文件中删除bean的。这里需要提供完整的路径 将XMLBean配置文件的 ClassPathXmlApplicationContext− 此容器加载定义 从XML文件中删除bean的。在这里,您不需要提供 XML文件的完整路径,但需要正确设置类路径 因为此容器将在中查找bean配置XML文件 类路径 WebXmlApplicationContext− 此容器

我学到了:

“应用程序上下文”的三种常用实现是−

FileSystemXmlApplicationContext
− 此容器加载定义 从XML文件中删除bean的。这里需要提供完整的路径 将XMLBean配置文件的

ClassPathXmlApplicationContext
− 此容器加载定义 从XML文件中删除bean的。在这里,您不需要提供 XML文件的完整路径,但需要正确设置类路径 因为此容器将在中查找bean配置XML文件 类路径

WebXmlApplicationContext
− 此容器使用 web应用程序中所有bean的定义

那弹簧靴呢?我读过一些文章,如如何获取ApplicationContext:

公共类A实现ApplicationContextAware{

private ApplicationContext applicationContext;

@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    this.applicationContext = applicationContext;
}
}


但是,在Spring Boot中究竟使用哪种应用程序上下文实现?

Spring Boot应用程序的入口点是一个对象。您可以通过其方法选择要使用的实现。它的javadoc声明

设置将创建的Spring
ApplicationContext
的类型。如果 未指定默认值为WEB的
DEFAULT\u SERVLET\u WEB\u CONTEXT\u CLASS
基于应用程序或非web应用程序的注释配置应用程序上下文 基于Web的应用程序

如果你不使用这种方法,它会列出

org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext
用于基于web的应用程序和

org.springframework.context.annotation.AnnotationConfigApplicationContext
适用于非基于web的应用程序


还有一个。

Spring boot创建了一种新类型的
ApplicationContext
,名为
WebServerApplicationContext
,它与嵌入式服务器集成。它进一步分为两个实现类别,一个用于Servlet堆栈(),另一个用于Webflux反应堆栈(
ReactiveWebServerApplicationContext

这个新上下文的显著区别在于,它将在引导上下文期间创建和管理嵌入式服务器。因此,您可以看到此上下文将返回一个
WebServer
,它具有以下接口

public interface WebServer {
    void start() throws WebServerException;
    void stop() throws WebServerException;
    int getPort();
}

WebServer
可以是
JettyWebServer
NettyWebServer
TomcatWebServer
UndertowWebServer
等,这取决于类路径中找到的嵌入式服务器。

这取决于类路径,例如,如果您正在创建一个web应用程序,它可能是一个


获取ApplicationContext并在其上应用getClass()方法检查它的实现情况。

尝试打印
ApplicationContext的类名
?当然,我会这样做,并在确保自己没有人知道后回答我的问题