您的位置:首页 > 其它

classPath和classPath*的区别

2015-09-28 15:05 232 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_27778157/article/details/48784793

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: