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

          主站蜘蛛池模板: 长武县| 南通市| 漳州市| 化州市| 武城县| 宿迁市| 富阳市| 荣成市| 河源市| 贡觉县| 左权县| 宽甸| 浦东新区| 巴青县| 阿克苏市| 肇州县| 乐平市| 庆安县| 自治县| 昆明市| 百色市| 亳州市| 米泉市| 增城市| 明水县| 周至县| 抚松县| 镇巴县| 屏南县| 黄龙县| 福鼎市| 巫溪县| 库伦旗| 夏津县| 万盛区| 哈密市| 游戏| 瓦房店市| 札达县| 嘉黎县| 西安市|