對於乙個ioc框架來說,這個功能是最基本,但是對於初學者來說確實不好來完成。接下來我會先貼**,然後根據**分析。
/**
* 對於制定包名的載入類
* author:lizhao
* date:15/12/16
* version:1.0
* * @param pacckagename
* * @return
*/public static set> getclassset(string pacckagename)
else if(protocol.equals("jar"))}}
}}}}
} catch (ioexception e)
return classset;
}/**
* * author:lizhao
* date:15/12/16
* version:1.0
* * @param classset
* @param packagepath
* @param pacckagename
*/private static void addclass(set> classset, string packagepath, string pacckagename)
});for (file file : files)
doaddclass(classset, classname);
} else
string subpackagename = filename;
if (stringutil.isnotempty(pacckagename))
//執行新增類
addclass(classset, subpackagepath, subpackagename);}}
}/**
* 新增類載入
* author:lizhao
* date:15/12/16
* version:1.0
* * @param classset
* @param classname
*/private static void doaddclass(set> classset, string classname)
對於上面一些部分有詳細地說明,接下來對**逐一分析。
1.set
Spring掃瞄出指定包下的所有類名
無論是什麼框架,包括spring,完成這個功能底層都是用的classloader.getresources 或classloader.getsystemresources 方法實現的,即先找出指定classpath下的 資源 可能是檔案也可能是jar包,然後通過檔案i o讀取jar,把每乙個.cla...
PHP獲取類名及所有函式名
php獲取類名及所有函式名1.獲取行號 檔案路徑檔名 類名 方法名的常量 line 檔案中的當前行號。file 檔案的完整路徑和檔名。如果用在包含檔案中,則返回包含檔名。自 php 4.0.2 起,file 總是包含乙個絕對路徑,而在此之前的版本有時會包含乙個相對路徑。function 函式名稱 p...
從基類中獲取所有子類名
有的時候,我們需要獲取某個基類中的所有子類,從而進行統一管理。這裡有乙個簡單易行的實現 class program static bool issubclassof type type,type basetype b b.basetype return false public class base...