`

(转)FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和XmlWebApplicat

 
阅读更多

今天在用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);

分享到:
评论

相关推荐

    spring为ApplicationContext提供的3种实现分别为:ClassPathXmlApplicationContext

    ClassPathXmlApplicationContext和FileSystemXmlApplicationContext适用于传统的XML配置方式,适合于大型项目,因为XML配置可以提供清晰的结构和分离的配置。而AnnotationConfigApplicationContext则更简洁,减少了...

    maven相关资料

    二、ClassPathXmlApplicationContext[只能读放在web-info/classes目录下的配置文件]和FileSystemXmlApplicationContext的区别 classpath:前缀是不需要的,默认就是指项目的classpath路径下面; 如果要使用绝对路径,...

    spring 容器.docx

    ApplicationContext的实现类如FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和AnnotationConfigApplicationContext分别支持从文件系统、类路径或注解配置中加载Bean定义。 ApplicationContext...

    Spring 65道面试题和答案.docx

    ApplicationContext是Spring的主要容器实现,例如FileSystemXmlApplicationContext和ClassPathXmlApplicationContext,它们分别从文件系统和类路径加载XML配置。 使用Spring框架的优势在于: - 轻量级:小巧的体积...

    Spring必背.docx

    ApplicationContext还有三个常用的实现类,分别是FileSystemXmlApplicationContext、ClassPathXmlApplicationContext和WebXmlApplicationContext,其中ClassPathXmlApplicationContext是最常用的。 面向切面编程...

    spring技术详解

    Spring容器有多种实现类,常用的有XmlBeanFactory、FileSystemXmlApplicationContext和ClassPathXmlApplicationContext等。其中,ApplicationContext是BeanFactory的子接口,通常使用...

    18 Spring IoC容器如何读取应用外部的xml,txt,图形或者属性文件?慕课专栏(1)1

    通常,我们会在应用内部的类路径(ClassPath)下放置配置文件,如`applicationContext.xml`,然后使用`ClassPathXmlApplicationContext`来加载这些内部配置文件。然而,有时我们需要从应用外部读取配置文件,比如`...

    Spring 70道面试题和答案.docx

    IoC容器有两种主要实现:FileSystemXmlApplicationContext和ClassPathXmlApplicationContext,分别从文件系统和类路径下的XML配置文件加载bean定义。 IoC的优点包括减少代码量、提高测试能力(因为依赖注入使得对象...

    spring读取配置文件

    本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...

    Spring基础篇.pdf

    应用程序上下文的常用实现包括FileSystemXmlApplicationContext和ClassPathXmlApplicationContext,分别用于从文件系统和类路径加载beans的定义。 Spring的IOC容器负责创建对象、管理对象的生命周期(包括依赖注入...

    ApplicationContext及它的3种实现.docx

    - **FileSystemXmlApplicationContext**:与`ClassPathXmlApplicationContext`类似,但它从文件系统的绝对路径加载XML配置文件。如`new FileSystemXmlApplicationContext("D:/project/bean.xml")`,它会根据提供的...

    sping applicationcontext中的一些例子demo

    首先,`ApplicationContext`有多个实现类,如`ClassPathXmlApplicationContext`、`FileSystemXmlApplicationContext`和`WebApplicationContext`等。这些子类分别对应不同的应用场景: 1. **...

    Spring详解

    在实际应用中,我们通常使用ApplicationContext,如FileSystemXmlApplicationContext或ClassPathXmlApplicationContext,它们分别基于文件系统和类路径加载XML配置文件来创建容器。 依赖注入是Spring的核心机制,也...

    spring的ioc说明

    `FileSystemXmlApplicationContext`和`ClassPathXmlApplicationContext`用于从文件系统或类路径加载XML配置文件,而在Web应用中,通常使用`XmlWebApplicationContext`。 在实际应用中,我们通常会创建一个`...

Global site tag (gtag.js) - Google Analytics