java讀取指定package下的所有class

2021-06-19 11:54:54 字數 1187 閱讀 5599

之前在看spring註解的時候,有看到再配置檔案裡面定義component scan package就能自動掃瞄對應包下面的class,

然後根據註解生成相應的bean。自己對這個功能很好奇,就搜了下,找到了實現的關鍵**,記錄下。後續再對這段**深入學習。

/**

* 從包package中獲取所有的class

* * @param pack

* @return

*/public static set> getclasses(string pack) else if ("jar".equals(protocol))

// 如果前半部分和定義的包名相同

if (name.startswith(packagedirname))

// 如果可以迭代下去 並且是乙個包

if ((idx != -1) || recursive) catch (classnotfoundexception e) }}

}}

} catch (ioexception e) }}

} catch (ioexception e)

return classes;

}

/**

* 以檔案的形式來獲取包下的所有class

* * @param packagename

* @param packagepath

* @param recursive

* @param classes

*/public static void findandaddclassesinpackagebyfile(string packagename,

string packagepath, final boolean recursive, set> classes)

// 如果存在 就獲取包下的所有檔案 包括目錄

file dirfiles = dir.listfiles(new filefilter()

});// 迴圈所有檔案

for (file file : dirfiles) else catch (classnotfoundexception e)

}} }

自己直接拿過來用了,可以掃瞄package對應的子package,不過是對當前classload下的所有jar進行掃瞄的。

java讀取指定package下的所有class

從包package中獲取所有的class param pack return public static set getclasses string pack else if jar equals protocol 如果前半部分和定義的包名相同 if name.startswith packaged...

pip安裝指定版本的package

最近到乙個專案組,用了一套高大上的運維工具來搭建開發環境.有vagrant控制virtualbox啟動虛擬機器.有ansible來執行playbook初始化環境.然後遇到了乙個坑,專案現有的playbook可以在ansible 1.9.6裡面正常執行,而在ansible 2.0.2裡執行失敗了.而我...

讀取指定列

usr bin env python3 coding utf 8 import xlrd 開啟excel檔案,建立乙個workbook物件,book物件也就是fruits.xlsx檔案,表含有sheet名 rbook xlrd.open workbook key.xlsx sheets方法返回物件列...