classPath和classPath*的区别
来源:互联网 发布:vs2017写c语言 编辑:程序博客网 时间:2024/04/30 21:51
classPath和classPath*的区别:
public static voidmain(String[] args) {
ApplicationContext ctx= new ClassPathXmlApplicationContext(
"classpath:conf/hibernate.cfg.xml");
System.out.println(ctx.getClassLoader().getResource("").getPath());
1) 当classpath: hibernate.cfg.xml时,找不到指定文件,因为classPath(D:\myeclipseWorkspace\mytest\WebRoot\WEB-INF\classes)下不存在该文件;
2) 当classpath:conf/hibernate.cfg.xml时,加载的为conf下面的hibernate.cfg.xml。
3) 将conf和conf.admin打包成jar包,当该jar包和conf、conf.admin同时存在且classpath:conf/hibernate.cfg.xml时,只加载conf下面的hibernate.cfg.xml,而不会加载jar包中的hibernate.cfg.xml。
4) 当只存在该jar包时,则加载jar包中的hibernate.cfg.xml。
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"classpath*:conf/**/*hibernate.cfg.xml");
//System.out.println(ctx.getClassLoader().getResource("conf/hibernate.cfg.xml").getPath());
try {
EnumerationresourceUrls = ctx.getClassLoader().getResources("conf/admin/admin-hibernate.cfg.xml");
while(resourceUrls.hasMoreElements()) {
String url =resourceUrls.nextElement().toString();
System.out.println(url);
}
} catch(IOException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}
5) 当"classpath*:conf/**/*hibernate.cfg.xml"时,不仅会加载conf下的hibernate.cfg.xml和conf.admin下的admin-hibernate.cfg.xml,还会加载jar包下的这两个文件。
Classpath*的存在主要是为加载不同jar包同路径下的各个同名文件,例如myjar1.jar包里conf下的hibernate.cfg.xml和myjar2.jar包里conf下的hibernate.cfg.xml。
PS:还可参考http://www.cnblogs.com/shipengzhi/articles/3029872.html
- classpath 和 classpath*的区别
- classPath和classPath*的区别
- classpath: 和 classpath*:的区别
- classpath: 和classpath*:的区别
- classpath和classpath*的区别
- classpath和classpath*的区别
- classpath和classpath*的区别
- classpath 和 classpath* 区别
- classpath 和 classpath* 区别
- classpath 和 classpath* 区别:
- classpath 和 classpath* 区别
- classpath 和 classpath* 区别:
- classpath和classpath*区别
- classpath和classpath*区别
- Spring的classpath和classpath*的区别
- classpath和classpath*的配置区别
- spring classpath和classpath*的区别
- Spring中classpath*和classpath的区别
- Android获取图片大小以及获取指定大小的缩略图
- 字符串转整形
- Java学习:内部类
- mysql学习之配置及常见命令
- 河南第三届ACM省赛(素数)
- classPath和classPath*的区别
- iOS本地通知
- Struts2五、Struts1与Struts2的区别
- 卖火车票---java线程
- windowAPI--手动编写一个消息窗口
- TSM备份Oracle报错(rman-06012,ANR1401W)
- docker 报错:x509: certificate has expired or is not yet valid
- JavaScript高级程序设计之面向对象的程序设计之继承之寄生组合式继承第6.3.6讲笔记
- 二叉搜索树的后序遍历序列