美文网首页
Spring 资源加载-通配符之classpath*:

Spring 资源加载-通配符之classpath*:

作者: AlanSun2 | 来源:发表于2019-06-11 15:15 被阅读0次

    classpath*: vs classpath:?

    • classpath*:表示整合classpath下所有的与指定文件名相同的文件。
    • classpath:只加载classpath下第一个与指定文件名相同的文件。

    它内部本质上使用了ClassLoader.getResources(...)方法。

    举个例子:

    ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath*:spring-beans.xml");
    
    • 第一种情况:类路径下不存在spring-beans.xml,但是依赖包类路径中存在spring-beans.xml
      结果:成功加载
    • 第二种情况:类路径存在spring-beans.xml,但是依赖包类路径中不存在spring-beans.xml
      结果:成功加载
    • 第三种情况:类路径存在spring-beans.xml,但是依赖包类路径中存在spring-beans.xml
      结果:成功加载(这时会整合两个spring-beans.xml
    ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath:spring-beans.xml");
    
    • 第一种情况:类路径下不存在spring-beans.xml,但是依赖包类路径中存在spring-beans.xml
      结果:成功加载
    • 第二种情况:类路径存在spring-beans.xml,但是依赖包类路径中不存在spring-beans.xml
      结果:成功加载
    • 第三种情况:类路径存在spring-beans.xml,但是依赖包类路径中存在spring-beans.xml
      结果:成功加载(这时只加载当前类路径中的spring-beans.xml

    相关文章

      网友评论

          本文标题:Spring 资源加载-通配符之classpath*:

          本文链接:https://www.haomeiwen.com/subject/ltlqfctx.html