`
wuguowei1314
  • 浏览: 130139 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring加载resource时classpath* 与classpath的区别.doc

    博客分类:
  • java
 
阅读更多

Spring可以通过指定classpath*:与classpath:前缀加路径的方式从classpath加载文件,如bean的定义文件.classpath*:的出现是为了从多个jar文件中加载相同的文件.classpath:只能加载找到的第一个文件.

比如 resource1.jar中的package 'com.test.rs' 有一个 'jarAppcontext.xml' 文件,内容如下:

<bean name="ProcessorImplA" class="com.test.spring.di.ProcessorImplA" />

resource2.jar中的package 'com.test.rs' 也有一个 'jarAppcontext.xml' 文件,内容如下:

<bean id="ProcessorImplB" class="com.test.spring.di.ProcessorImplB" />

 

通过使用下面的代码则可以将两个jar包中的文件都加载进来

ApplicationContext ctx = new ClassPathXmlApplicationContext(
                "classpath*:com/test/rs/jarAppcontext.xml");

 

而如果写成下面的代码,就只能找到其中的一个xml文件(顺序取决于jar包的加载顺序)

ApplicationContext ctx = new ClassPathXmlApplicationContext(
                "classpath:com/test/rs/jarAppcontext.xml");

 

classpath*:的使用是为了多个component(最终发布成不同的jar包)并行开发,各自的bean定义文件按照一定的规则:package+filename,而使用这些component的调用者可以把这些文件都加载进来.

 

classpath*:的加载使用了classloader的 getResources() 方法,如果是在不同的J2EE服务器上运行,由于应用服务器提供自己的classloader实现,它们在处理jar文件时的行为也许会有所不同。 要测试 classpath*: 是否有效,可以用classloader从classpath中的jar文件里加载文件来进行测试: getClass().getClassLoader().getResources("<someFileInsideTheJar>") 。(上面的例子是在sun的jre中运行的状态)

分享到:
评论

相关推荐

    浅析Spring配置中的classpath:与classpath*:的区别

    主要介绍了Spring配置中的"classpath:"与"classpath*:"的区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    Spring AOP配置源码

    在类上标注@ContextConfiguration(locations="classpath:applicationContext.xml")意思是去classpath路径下加载applicationContext.xml @Resource(name="userService")意思是把userService注入进来 最终输出结果为:...

    spring源代码

    Resource[] resources = resolver.getResources("classpath*:asm-*.txt"); Assert.assertTrue(resources.length == 0); //将通过ClassLoader.getResources("asm-license.txt")加载 //asm-license.txt存在于...

    Spring中使用classpath加载配置文件浅析

    本文档介绍了spring中的在classpath中加载配置文件

    AAPT: error: resource attr/** (aka com.**.app:attr/**) not found.

    问题记录 记录项目中的一个问题,不知什么时候,运行项目会出现这个错误: 解决方法 buildscript { repositories { ... classpath 'com.android.tools.build:gradle:3.6.2' } } 反思 项目出现问题

    Java 实例 - classpath使用实例-classpath使用教程-手把手教程.zip

    Java 实例 - classpath使用实例-classpath使用教程-手把手教程.zip

    oracle.net.ca.NetCA $* p8670579_112010_LINUX.zip

    /u01/oracle/bin/netca: line 178: 11819 Aborted $JRE $JRE_OPTIONS -classpath $CLASSPATH oracle.net.ca.NetCA $* 错误 引发原因:host [oracle@jc11g ~]$ vi /etc/sysconfig/network NETWORKING=yes #修改...

    IKVM.GNU.Classpath

    用于处理PDF,或将PDF转换为jpg图片格式时用到的dll

    spring-framework-reference-4.1.2

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    exmaple_google_oauth2_java.zip

    一套完整的 google drive... dir /b/s src\*.java &gt; src.list javac -sourcepath src -d bin -classpath "lib/*;" @src.list copy client_secrets.json bin\ java -classpath "bin;lib/*;" com.google.oauth2.Oauth2

    spring-framework-reference4.1.4

    3. New Features and Enhancements in Spring Framework 4.0 ............................................ 17 3.1. Improved Getting Started Experience .........................................................

    springboot+mybatis+内置tomcat示例.rar

    spring.thymeleaf.prefix=classpath:/templates/ #spring.thymeleaf.suffix=.jsp spring.thymeleaf.cache=false #mybatis 配置 mybatis.mapper-locations=classpath:mapping/*Mapper.xml mybatis.type-...

    dropbox_oauth2.zip

    dir /b/s src\*.java &gt; src.list javac -sourcepath src -d bin -classpath "lib/*;" @src.list copy app.info bin\ java -classpath "bin;lib/*;" com.dropbox.oauth2.Oauth2 此示例程序所用dropbox java ...

    Spring的web配置

    springmvc的资源配置:Spring 刷新Introspector防止内存泄露,Spring MVC配置;Character Encoding filter; &lt;param-name&gt;... &lt;param-value&gt;classpath*:applicationContext-*.xml &lt;/context-param&gt;

    CXF WebService整合Spring示例工程代码demo

    -- 设置Spring容器加载配置文件路径 --&gt; &lt;param-name&gt;contextConfigLocation &lt;param-value&gt;classpath*:applicationContext-server.xml &lt;listener-class&gt;org.springframework.web.util....

    关于classpath

    关于java的classpath补充,详细说明如何配置classpath,如火热让javac正确编译运行java文件

    .classpath

    .classpath

    Spring通过在classpath自动扫描方式把组件纳入spring容器中管理

    NULL 博文链接:https://huangminwen.iteye.com/blog/1486843

    Spring2.5 自动扫描classpath

    NULL 博文链接:https://hahalzb.iteye.com/blog/690802

    DOS命令使用方法(超全).

    &lt;param-value&gt;classpath*:applicationContext-*.xml &lt;!-- 这是spring 监听 --&gt; &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener &lt;!-- 利用spring监听 编码设置 --&gt; ...

Global site tag (gtag.js) - Google Analytics