-
spring的ClassPathResource怎么知道具体的classpath指向的路径的10
如题,我的开发环境是windows的一个web应用,但是是在一个main方法中直接加载配置文件
具体代码片段:
ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:study/event/applicationContext-event.xml");
spring怎么知道classpath是哪个路径?
看了下ClassPathResource的源代码,在它的方法:
public InputStream getInputStream() throws IOException {
InputStream is = null;
if (this.clazz != null) {
is = this.clazz.getResourceAsStream(this.path);
}
else {
is = this.classLoader.getResourceAsStream(this.path);
}
if (is == null) {
throw new FileNotFoundException(
getDescription() + " cannot be opened because it does not exist");
}
return is;
}
里,程序运行到这里的时候this.path显示的是:study/event/applicationContext-event.xml,所以不知道spring是怎么知道去正确的路径查找资源(study/event/applicationContext-event.xml)的
问题补充:
我很想知道spring是怎么知道classpath是哪个的?也就是说它是在什么地方确定了classpath目录的路径的?
问题补充:
但是我系统都没有定义那个classpath。
问题补充:
java.class.path这个系统属性是什么时候定义的呢?因为我自己是没定义的,所以我认为是不是:
1 如果是在IDE里面跑java程序,那么又IDE定义这个变量
2 如果是在服务器里面运行java程序,那么由服务器定义
是这样的吗?
2009年6月11日 14:43
6个答案 按时间排序 按投票排序
-
采纳的答案
这个是JVM初始化的
http://hi.baidu.com/fendy520/blog/item/01fd76d96d79252411df9bbb.html2009年6月11日 17:47
-
spring也是用的jdk的查找类路径方法啊
if (this.clazz != null) {
is = this.clazz.getResourceAsStream(this.path);
//调用Class类的getResourceAsStream
}
else {
is = this.classLoader.getResourceAsStream(this.path);
//调用ClassLoader类的getResourceAsStream
}
Class类的getResourceAsStream
public InputStream getResourceAsStream(String name)查找具有给定名称的资源。查找与给定类相关的资源的规则是通过定义类的 class loader 实现的。此方法委托此对象的类加载器。如果此对象通过引导类加载器加载,则此方法将委托给 ClassLoader.getSystemResourceAsStream(java.lang.String)。
在委托前,使用下面的算法从给定的资源名构造一个绝对资源名:
如果 name 以 '/' 开始 ('\u002f'),则绝对资源名是 '/' 后面的 name 的一部分。
否则,绝对名具有以下形式:
modified_package_name/name
其中 modified_package_name 是此对象的包名,该名用 '/' 取代了 '.' ('\u002e')。
参数:
name - 所需资源的名称
返回:
一个 InputStream 对象,或者 null(如果找不到带有该名称的资源)
抛出:
NullPointerException - 如果 name 是 null2009年6月11日 17:21
相关推荐
主要介绍了Spring实战之使用ClassPathResource加载xml资源,结合实例形式分析了Spring使用ClassPathResource加载xml资源的具体实现步骤与相关操作技巧,需要的朋友可以参考下
上传的资料都是非常经典的,这也是我学习过程中的心得,希望大家能给我指点,也希望大家多上传资料共同学习。千万不要传空文件夹。。。
主要介绍了Spring配置中的"classpath:"与"classpath*:"的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
主要介绍了spring boot加载资源路径配置和classpath问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
// Resource resource = new ClassPathResource("appcontext.xml"); // BeanFactory factory = new XmlBeanFactory(resource); // 用classpath路径 // ApplicationContext factory = new ...
Spring注释配置:Unexpected exception parsing XML document from class path resource [beans-annotation.xml]-附件资源
ClassFinal是一款java class文件安全加密工具,支持直接加密jar包或war包,无需修改任何项目代码,兼容spring-framework;可避免源码泄漏或字节码被反编译
本文档介绍了spring中的在classpath中加载配置文件
spring4的稳定版本4.0.6 无需maven直接下载jar包 系统只允许上传50M内的文件,所以只包含了jar包
spring-resource-handling, Spring Framework 4.1资源处理示例 spring-资源处理 这里应用程序演示 Spring Framework 4.1中的新资源处理功能。 它最初是为在 4.1中讨论资源而开发的,在 SpringOne2GX 2014中讨论。...
什么是Spring框架Spring框架有哪些主要模块 使用Spring框架能带来哪些好处 什么是控制反转IOC什么是依赖注入 ...FileSystemResource和ClassPathResource有何区别 Spring 框架中都用到了哪些设计模式
NULL 博文链接:https://huangminwen.iteye.com/blog/1486843
Spring注解@Resource和@Autowired.doc
利用spring resource读取配置文件。
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import com.icss.dao.StudentDao; import com.icss.po.Student; /**8 * 面向切面编程 * @author ...
Offending resource: class path resource [beans.xml] at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:70) 由于缺少依赖包 aspectjweaver-1.6.12...
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [applicationContext.xml]; nested exception is java.lang....
主要介绍了详解Spring关于@Resource注入为null解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1、什么是 Spring 框架?Spring 框架有哪些主要模块? 2、使用 Spring 框架能带来哪些好处?...24、FileSystemResource 和 ClassPathResource 有何区别? 25、Spring 框架中都用到了哪些设计模式?