最佳答案**
*
*
* 即: 对于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);
}
分享到:
相关推荐
ClassPathXmlApplicationContext和FileSystemXmlApplicationContext适用于传统的XML配置方式,适合于大型项目,因为XML配置可以提供清晰的结构和分离的配置。而AnnotationConfigApplicationContext则更简洁,减少了...
二、ClassPathXmlApplicationContext[只能读放在web-info/classes目录下的配置文件]和FileSystemXmlApplicationContext的区别 classpath:前缀是不需要的,默认就是指项目的classpath路径下面; 如果要使用绝对路径,...
容器构建通过 ClassPathXmlApplicationContext 或 FileSystemXmlApplicationContext 创建 ioc 容器,例如:ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");...
通过本文,我们了解了获得Spring上下文的方法总结,包括AnnotationConfigApplicationContext、AnnotationConfigWebApplicationContext、ClassPathXmlApplicationContext和FileSystemXmlApplicationContext四种方式,...
本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...
通常,我们会在应用内部的类路径(ClassPath)下放置配置文件,如`applicationContext.xml`,然后使用`ClassPathXmlApplicationContext`来加载这些内部配置文件。然而,有时我们需要从应用外部读取配置文件,比如`...
Spring提供了多种ApplicationContext实现,包括ClassPathXmlApplicationContext、FileSystemXmlApplicationContext、WebApplicationContext等。这些实现方式分别对应于不同应用场景: 1. ...
配置文件的位置通常在类路径下,可以使用ClassPathXmlApplicationContext或FileSystemXmlApplicationContext来实例化容器,前者在类路径中查找,后者则在文件系统路径下查找。 【Spring IOC(控制反转)】 Spring...
- **FileSystemXmlApplicationContext**:与`ClassPathXmlApplicationContext`类似,但它从文件系统的绝对路径加载XML配置文件。如`new FileSystemXmlApplicationContext("D:/project/bean.xml")`,它会根据提供的...
它还提供了IoC容器的基础支持,如ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,用于加载和解析配置文件。 4. **spring-context-2.0.6.jar**:上下文模块扩展了bean工厂,提供了更丰富的特性...
Spring通过`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`来加载这些配置文件。例如,使用`ClassPathXmlApplicationContext`加载`applicationContext.xml`的代码如下: ```java ...
在Java项目中,通常使用ClassPathXmlApplicationContext或FileSystemXmlApplicationContext来实例化ApplicationContext容器,而在Web项目中,容器的实例化则由Web服务器负责。 Spring框架的基础包包括spring-core、...
在主程序中,使用ClassPathXmlApplicationContext或FileSystemXmlApplicationContext加载配置文件,启动Spring容器。例如: ```java import org.springframework.context.ApplicationContext; import org.spring...
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); (2)ApplicationContext context = new FileSystemXmlApplicationContext ("applicationContext.xml"); 一般用第...
有三种常见的ApplicationContext实现:ClassPathXmlApplicationContext、FileSystemXmlApplicationContext和XmlWebApplicationContext,分别用于加载类路径、文件系统和Web环境中的配置文件。 【Bean的生命周期】当...
首先,`ApplicationContext`有多个实现类,如`ClassPathXmlApplicationContext`、`FileSystemXmlApplicationContext`和`WebApplicationContext`等。这些子类分别对应不同的应用场景: 1. **...
包括BeanFactory、ApplicationContext、MessageSource等核心接口,以及它们的实现类,如ClassPathXmlApplicationContext、FileSystemXmlApplicationContext等。此外,还包含了一些用于事件处理、资源访问、国际化等...
Spring提供了多种ApplicationContext实现,如ClassPathXmlApplicationContext和FileSystemXmlApplicationContext,分别对应于类路径和文件系统下的XML配置文件。 Spring IoC容器的设计还涉及Bean的生命周期管理。...
ApplicationContext ctx = new FileSystemXmlApplicationContext("D:/project/applicationContext.xml"); // 加载多个配置文件 String[] locations = {"D:/project/applicationContext.xml", "D:/project/...