`

ClassPathXmlApplicationContext FileSystemXmlApplicationContext 转

阅读更多
最佳答案**

* 

* 

* 即:   对于ClassPathXmlApplicationContext(),  classpath:  前缀是不需要的,   默认就是指项目的classpath路径下面;

*                            如果要使用绝对路径,需要加上  file:  前缀表示这是绝对路径;

*     

*       对于FileSystemXmlApplicationContext(),  默认表示的是两种:

*    1,没有盘符的是  项目工作路径, 即项目的根目录;

*    2,有盘符表示的是   文件绝对路径。

*    (NOTE: Plain paths will always be interpreted as relative to the current VM working directory, even if they start with a slash. (This is consistent with the semantics in a Servlet container.) Use an explicit "file:" prefix to enforce an absolute file path. )

*        如果要使用classpath路径, 需要前缀   classpath:  .

* 

*/

public class HelloClient {

    protected static final Log log = LogFactory.getLog(HelloClient.class);



    public static void main(String[] args) {

       // Resource resource = new ClassPathResource("appcontext.xml");

       // BeanFactory factory = new XmlBeanFactory(resource);

     

        //用classpath路径也可以

       // ApplicationContext factory=new ClassPathXmlApplicationContext("classpath:appcontext.xml");

//      ApplicationContext factory=new ClassPathXmlApplicationContext("appcontext.xml");

       // ApplicationContext factory=new ClassPathXmlApplicationContext("file:G:/1Java实用项目资源/2Spring/1精通Spring全Jar代码/workspace/workspace/example6/src/appcontext.xml");

      

        

        //用文件系统的路径

        //  ApplicationContext factory=new FileSystemXmlApplicationContext("src/appcontext.xml");     


      //使用了  classpath:  前缀,作为标志,  这样,FileSystemXmlApplicationContext 也能够读入classpath下的相对路径

      //  ApplicationContext factory=new FileSystemXmlApplicationContext("classpath:appcontext.xml");

     //   ApplicationContext factory=new FileSystemXmlApplicationContext("file:G:/1Java实用项目资源/2Spring/1精通Spring全Jar代码/workspace/workspace/example6/src/appcontext.xml");

        ApplicationContext factory=new FileSystemXmlApplicationContext("G:/1Java实用项目资源/2Spring/1精通Spring全Jar代码/workspace/workspace/example6/src/appcontext.xml");

        

        IHelloWorld hw = (IHelloWorld) factory.getBean("helloworldbean");

        log.info(hw.getContent("luoshifei"));

    }

 

package com.baobaotao.service;

import java.util.Date;

import junit.framework.TestCase;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;

import com.baobaotao.domain.User;

public class TestUserService extends TestCase {

	public ApplicationContext factory = null;

	private static String[] CONFIG_FILES = {
			"baobaotao-dao.xml",
			"baobaotao-service.xml" };
	
	private static String[] CONFIG_FILES2 = {
		"/WebRoot/WEB-INF/classes/baobaotao-dao.xml",
		"/WebRoot/WEB-INF/classes/baobaotao-service.xml" };

	protected void setUp() throws Exception {
		factory = new FileSystemXmlApplicationContext(CONFIG_FILES2);
		factory = new ClassPathXmlApplicationContext(CONFIG_FILES);
	}

	public void testHasMatchUser() {
		UserService userService = (UserService) factory.getBean("userService");
		boolean b1 = userService.hasMatchUser("admin", "123456");
		boolean b2 = userService.hasMatchUser("admin", "1111");
		assertTrue(b1);
		assertTrue(!b2);
	}

	public void testFindUserByUserName() {
		UserService userService = (UserService) factory.getBean("userService");
		User user = userService.findUserByUserName("admin");
		assertEquals(user.getUserName(), "admin");
	}

	public void testAddLoginLog() {
		UserService userService = (UserService) factory.getBean("userService");
		User user = userService.findUserByUserName("admin");
		user.setUserId(1);
		user.setUserName("admin");
		user.setLastIp("192.168.12.7");
		user.setLastVisit(new Date());
		userService.loginSuccess(user);
	}
}

 

private static ApplicationContext ctx = null;
static{
ctx = new FileSystemXmlApplicationContext("//usr/local/appliaction/SDLGateWayTest/WEB-INF/conf/applicationContent.xml");
}

如果只写一个/,比如:

private static ApplicationContext ctx = null;
static{
ctx = new FileSystemXmlApplicationContext("/usr/local/appliaction/SDLGateWayTest/WEB-INF/conf/applicationContent.xml");
}
这样,会默认在tomcat主目录下当做相对路径去寻找,就是去找/usr/local/tomcat6/usr/local/appliaction/SDLGateWayTest/WEB-INF/conf/applicationContent.xml 找不到,报错了。
=======================================
FileSystemXmlApplicationContext source code:

protected Resource getResourceByPath(String path) {
		if (path != null && path.startsWith("/")) {
			path = path.substring(1);
		}
		return new FileSystemResource(path);
	}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

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

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

    maven相关资料

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

    ssm框架源码分析之.docx

    容器构建通过 ClassPathXmlApplicationContext 或 FileSystemXmlApplicationContext 创建 ioc 容器,例如:ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");...

    如何获得spring上下文的方法总结

    通过本文,我们了解了获得Spring上下文的方法总结,包括AnnotationConfigApplicationContext、AnnotationConfigWebApplicationContext、ClassPathXmlApplicationContext和FileSystemXmlApplicationContext四种方式,...

    spring读取配置文件

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

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

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

    org.springframework.context_3.0.5.release.jar.zip

    Spring提供了多种ApplicationContext实现,包括ClassPathXmlApplicationContext、FileSystemXmlApplicationContext、WebApplicationContext等。这些实现方式分别对应于不同应用场景: 1. ...

    spring课程

    配置文件的位置通常在类路径下,可以使用ClassPathXmlApplicationContext或FileSystemXmlApplicationContext来实例化容器,前者在类路径中查找,后者则在文件系统路径下查找。 【Spring IOC(控制反转)】 Spring...

    ApplicationContext及它的3种实现.docx

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

    Spring2.0jar包

    它还提供了IoC容器的基础支持,如ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,用于加载和解析配置文件。 4. **spring-context-2.0.6.jar**:上下文模块扩展了bean工厂,提供了更丰富的特性...

    day38 04-Spring加载配置文件

    Spring通过`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`来加载这些配置文件。例如,使用`ClassPathXmlApplicationContext`加载`applicationContext.xml`的代码如下: ```java ...

    ssm框架题库-java.docx

    在Java项目中,通常使用ClassPathXmlApplicationContext或FileSystemXmlApplicationContext来实例化ApplicationContext容器,而在Web项目中,容器的实例化则由Web服务器负责。 Spring框架的基础包包括spring-core、...

    spring环境搭建

    在主程序中,使用ClassPathXmlApplicationContext或FileSystemXmlApplicationContext加载配置文件,启动Spring容器。例如: ```java import org.springframework.context.ApplicationContext; import org.spring...

    spring核心

    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); (2)ApplicationContext context = new FileSystemXmlApplicationContext ("applicationContext.xml"); 一般用第...

    spring教程(ppt版)

    有三种常见的ApplicationContext实现:ClassPathXmlApplicationContext、FileSystemXmlApplicationContext和XmlWebApplicationContext,分别用于加载类路径、文件系统和Web环境中的配置文件。 【Bean的生命周期】当...

    sping applicationcontext中的一些例子demo

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

    spring-context-3.0.0.RELEASE.jar.zip

    包括BeanFactory、ApplicationContext、MessageSource等核心接口,以及它们的实现类,如ClassPathXmlApplicationContext、FileSystemXmlApplicationContext等。此外,还包含了一些用于事件处理、资源访问、国际化等...

    Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计.doc

    Spring提供了多种ApplicationContext实现,如ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,分别对应于类路径和文件系统下的XML配置文件。 Spring IoC容器的设计还涉及Bean的生命周期管理。...

    ApplicationContext及它的3种实现

    ApplicationContext ctx = new FileSystemXmlApplicationContext("D:/project/applicationContext.xml"); // 加载多个配置文件 String[] locations = {"D:/project/applicationContext.xml", "D:/project/...

Global site tag (gtag.js) - Google Analytics