今天在用Spring时遇到一个问题,提示找不到applicationContext.xml文件。原来是在加载这个文件时调用的方法不太合适,所以造成了程序找不到项目下的xml配置文件。
我们常用的加载context文件的方法有如下三个:
1、FileSystemXmlApplicationContext
这个方法是从文件绝对路径加载配置文件,例如:
ApplicationContext ctx = new FileSystemXmlApplicationContext( "G:/Test/applicationcontext.xml ");
如果在参数中写的不是绝对路径,那么方法调用的时候也会默认用绝对路径来找,我测试的时候发现默认的绝对路径是eclipse所在的路径。
采用绝对路径的话,程序的灵活性就很差了,所以这个方法一般不推荐。
(如果要使用classpath路径,需要加入前缀classpath: )
2、ClassPathXmlApplicationContext
这个方法是从classpath下加载配置文件(适合于相对路径方式加载),例如:
ApplicationContext ctx = new ClassPathXmlApplicationContext( "/applicationcontext.xml ");
该方法参数中classpath: 前缀是不需要的,默认就是指项目的classpath路径下面;这也就是说用ClassPathXmlApplicationContext时默认的根目录是在WEB-INF/classes下面,而不是项目根目录。这个需要注意!
3、XmlWebApplicationContext
专为web工程定制的方法,推荐Web项目中使用。例如:
ServletContext servletContext = request.getSession().getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
相关推荐
ClassPathXmlApplicationContext和FileSystemXmlApplicationContext适用于传统的XML配置方式,适合于大型项目,因为XML配置可以提供清晰的结构和分离的配置。而AnnotationConfigApplicationContext则更简洁,减少了...
二、ClassPathXmlApplicationContext[只能读放在web-info/classes目录下的配置文件]和FileSystemXmlApplicationContext的区别 classpath:前缀是不需要的,默认就是指项目的classpath路径下面; 如果要使用绝对路径,...
ApplicationContext的实现类如FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和AnnotationConfigApplicationContext分别支持从文件系统、类路径或注解配置中加载Bean定义。 ApplicationContext...
ApplicationContext是Spring的主要容器实现,例如FileSystemXmlApplicationContext和ClassPathXmlApplicationContext,它们分别从文件系统和类路径加载XML配置。 使用Spring框架的优势在于: - 轻量级:小巧的体积...
ApplicationContext还有三个常用的实现类,分别是FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和WebXmlApplicationContext,其中ClassPathXmlApplicationContext是最常用的。 面向切面编程...
Spring容器有多种实现类,常用的有XmlBeanFactory、FileSystemXmlApplicationContext和ClassPathXmlApplicationContext等。其中,ApplicationContext是BeanFactory的子接口,通常使用...
通常,我们会在应用内部的类路径(ClassPath)下放置配置文件,如`applicationContext.xml`,然后使用`ClassPathXmlApplicationContext`来加载这些内部配置文件。然而,有时我们需要从应用外部读取配置文件,比如`...
IoC容器有两种主要实现:FileSystemXmlApplicationContext和ClassPathXmlApplicationContext,分别从文件系统和类路径下的XML配置文件加载bean定义。 IoC的优点包括减少代码量、提高测试能力(因为依赖注入使得对象...
本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...
应用程序上下文的常用实现包括FileSystemXmlApplicationContext和ClassPathXmlApplicationContext,分别用于从文件系统和类路径加载beans的定义。 Spring的IOC容器负责创建对象、管理对象的生命周期(包括依赖注入...
- **FileSystemXmlApplicationContext**:与`ClassPathXmlApplicationContext`类似,但它从文件系统的绝对路径加载XML配置文件。如`new FileSystemXmlApplicationContext("D:/project/bean.xml")`,它会根据提供的...
首先,`ApplicationContext`有多个实现类,如`ClassPathXmlApplicationContext`、`FileSystemXmlApplicationContext`和`WebApplicationContext`等。这些子类分别对应不同的应用场景: 1. **...
在实际应用中,我们通常使用ApplicationContext,如FileSystemXmlApplicationContext或ClassPathXmlApplicationContext,它们分别基于文件系统和类路径加载XML配置文件来创建容器。 依赖注入是Spring的核心机制,也...
`FileSystemXmlApplicationContext`和`ClassPathXmlApplicationContext`用于从文件系统或类路径加载XML配置文件,而在Web应用中,通常使用`XmlWebApplicationContext`。 在实际应用中,我们通常会创建一个`...