classPath和classPath*的区别

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.xmlmyjar2.jar包里conf下的hibernate.cfg.xml

PS:还可参考http://www.cnblogs.com/shipengzhi/articles/3029872.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值