Spring-core里的查找Resource的好东西

需要做configuration的模块,研究了list的用法,在帖子"Spring的Resource配置"

(http://blog.csdn.net/inthirties/archive/2009/08/27/4490407.aspx)已经提到过,

 

觉得spring这个功能还不错,所以那到代码看了看其中的实现,找到了PathMatchingResourcePatternResolver

这个类,这个类的接口如下

 

public Resource getResource(String location)

public ResourceLoader getResourceLoader()

public Resource[] getResources(String locationPattern)

public PathMatcher getPathMatcher()

 

这里的getResources和getResource就是spring处理list的resouce查找的实现类。

 

这里可以支持文件和classpath的查找方式。

看他的文档,支持

 

No Wildcards:

如果不是以classpath*:开头的话,他就不会使用PathMatcher pattern,

 

file:C:/context.xml

classpath:/context.xml

/WEB-INF/context.xml -- 这个会使用到特定的ServletContextResource for a WebApplicationContext

 

Ant-style pattern:

支持Ant style pattern

 

/WEB-INF/*-context.xml

com/mycompany/**/applicationContext.xml

file:C:/some/path/*-context.xml

classpath:com/mycompany/**/applicationContext.xml

 

classpath*: Prefix

这个是最强的classpath*:

classpath*:META-INF/*-beans.xml

classpath*:com/**/Driver.class

 

通过这些方式,我们做lookup resouce就很方便了

 

sample代码

 

PathMatchingResourcePatternResolver resolover = new PathMatchingResourcePatternResolver();

try

{

   Resource[] resources = null;

   

   resources = resolover.getResources("file:E:/information/personal/workspace/poc/synchrophy/framework/src/test/synchrophy/com/sunvalley/framework/test/configuration/init*.properties");

   

   System.out.println(resources.length);

   

   resources = resolover.getResources("classpath*:/com/**/Driver.class");

   

   System.out.println(resources.length);

   

   resources = resolover.getResources("classpath*:/META-INF/*.schemas");

   

   System.out.println(resources[0].getURL());

   

   resources = resolover.getResources("classpath*:com/synchrophy/**/*ui.properties");

   

   System.out.println(resources.length);

   

}

catch (Exception e) {

   // TODO: handle exception

   e.printStackTrace();

}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inthirties

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值