classScanner讲道理不应该放到这里,不过其实自动事件会基于classScanner。所以还是讲一讲classScanner吧。

classScanner是一个工具类,他的作用是实现类扫描,当你使用spring的自动扫描bean的功能的时候,是不是觉得很神奇呢?有没有想过自己实现一个?哈哈,为了写代码方便,但是又不想随意接入spring,我自己也尝试实现了一个类扫描器。实现完成之后发现代码量也不大,就不到三百行代码。

classScanner的原理是找classLoader,classLoader里面有所有class文件的地址,所有jar的文件地址。不过对于java来说,还可能有远程的class文件,这种class我的类扫描器就处理不了了。不过话说这种特色的玩儿法现在也没有了吧。找到这些文件地址之后,就尝试解析类名,然后匹配basePackage规则,如果匹配上了,就回调visitor。最后通过visitor得到回调结果

results matching ""

    No results matching ""