stone2083

          掃描classpath下類資源

          很早之前,為了簡化配置信息,自己寫了一坨代碼,基于classpath掃描類信息,加載.
          其實,在spring中,已經提供了類似組件(后知后覺了...):

          org.springframework.core.io.support.PathMatchingResourcePatternResolver  資源解析器(基于路徑的正則表達式)
          org.springframework.core.type.classreading.MetadataReader ClassMeta信息解讀器

          于是乎,代碼就非常簡單了:
           1 public class Test {
           2 
           3     /* 資源路徑 */
           4     private static final String                  PATH           = "classpath*:com/alibaba/javalab/t*/**/*.class";
           5     /* 資源解析器 */
           6     private static final ResourcePatternResolver RESOLVER       = new PathMatchingResourcePatternResolver();
           7     /* Meta信息Reader Factory.用于創建MetaReader */
           8     private static final MetadataReaderFactory   READER_FACTORY = new SimpleMetadataReaderFactory();
           9 
          10     public static void main(String[] args) throws Exception {
          11         //根據正則表達式,得到資源列表
          12         Resource[] resources = RESOLVER.getResources(PATH);
          13         for (Resource res : resources) {
          14             //通過 MetadataReader得到ClassMeta信息,打印類名
          15             MetadataReader meta = READER_FACTORY.getMetadataReader(res);
          16             System.out.println(meta.getClassMetadata().getClassName());
          17         }
          18     }
          19 }

          輸出結果:
          com.alibaba.javalab.tool.fetion.protocol.Config
          com.alibaba.javalab.tool.fetion.protocol.Fetion
          com.alibaba.javalab.tool.fetion.protocol.FetionHelper
          com.alibaba.javalab.tool.fetion.protocol.LoginSession
          com.alibaba.javalab.tool.trace.TimeTrace
          ...

          挺好使的一個工具 :)


          posted on 2010-07-23 14:55 stone2083 閱讀(1193) 評論(0)  編輯  收藏 所屬分類: java

          主站蜘蛛池模板: 昭通市| 新津县| 兴隆县| 仁布县| 翁源县| 日照市| 牡丹江市| 柳林县| 阿勒泰市| 正镶白旗| 湘乡市| 十堰市| 黑水县| 台东县| 河东区| 安泽县| 宜川县| 静宁县| 红河县| 郴州市| 驻马店市| 龙江县| 海淀区| 祁东县| 灌南县| 新龙县| 乌拉特中旗| 鄂托克旗| 米易县| 明水县| 宾阳县| 保定市| 平度市| 昌都县| 镶黄旗| 通州市| 临清市| 申扎县| 千阳县| 措美县| 普定县|