在这篇快速文章中,我们将通过一个示例来研究什么是ApplicationContext
接口及其实现类。
ApplicationContext
是Spring应用程序中的中心接口,用于向应用程序提供配置信息
接口BeanFactory
和ApplicationContext
表示Spring IoC容器。这里,BeanFactory
是访问Spring容器的根接口。它提供了管理bean的基本功能。
另一方面,ApplicationContext
是BeanFactory
的子接口。因此,它提供了BeanFactory
所有的功能。此外,它还提供了更多特定于企业的功能ApplicationContext
的重要特征是
这就是为什么我们使用ApplicationContext
作为默认的Spring容器。
下图显示了BeanFactory
和ApplicationContext
接口的实现:
让我们看看所有的ApplicationContext
接口实现类。
我们使用FileSystemXMLApplicationContext 类从文件系统或URL加载基于XML的Spring配置文件
例如,让我们看看如何创建这个Spring容器并为基于XML的配置加载bean:
String path = "C:/Spring-demo/src/main/resources/spring-servlet.xml";
ApplicationContext appContext = new FileSystemXmlApplicationContext(path);
AccountService accountService = appContext.getBean("studentService", StudentService.class);
如果我们想从类路径加载XML配置文件,可以使用ClassPathXmlApplicationContext类
与FileSystemXMLApplicationContext
类似,它对于测试工具以及JAR中嵌入的应用程序上下文非常有用。
例如:
ApplicationContext appContext = new ClassPathXmlApplicationContext("spring-servlet.xml");
AccountService accountService = appContext.getBean("studentService", StudentService.class);
如果我们在web应用程序中使用基于XML的配置,我们可以使用XmlWebApplicationContext类。
声明并通常从/WEB-INF/
中的XML文件加载的配置类
例如:
public class MyXmlWebApplicationInitializer implements WebApplicationInitializer {
public void onStartup(ServletContext container) throws ServletException {
XmlWebApplicationContext context = new XmlWebApplicationContext();
context.setConfigLocation("/WEB-INF/spring/applicationContext.xml");
context.setServletContext(container);
// Servlet configuration
}
}
AnnotationConfigApplicationContext 类是在Spring3.0中引入的。它可以接受用@Configuration、@Component和JSR-330元数据注解的类作为输入。
因此,让我们看一个简单的示例,将AnnotationConfigApplicationContext容器用于基于Java的配置:
ApplicationContext appContext = new AnnotationConfigApplicationContext(StudentConfig.class);
AccountService accountService = appContext.getBean(StudentService.class);
AnnotationConfigWebApplicationContext 是AnnotationConfigApplicationContext
的基于web的变体。
当我们配置Spring的ContextLoaderListener servlet监听器或在web.xml
文件中配置Spring MVC DispatcherServlet时,我们可能会使用这个类。
此外,从Spring3.0开始,我们还可以通过编程方式配置这个应用程序上下文容器。我们所需要做的就是实现WebApplicationInitializer接口:
public class MyWebApplicationInitializer implements WebApplicationInitializer {
public void onStartup(ServletContext container) throws ServletException {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.register(StudentConfig.class);
context.setServletContext(container);
// servlet configuration
}
}
在这篇快速文章中,我们通过一个示例简要介绍了ApplicationContext
接口及其实现类。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.javaguides.net/2022/01/what-is-applicationcontext-interface.html
内容来源于网络,如有侵权,请联系作者删除!