类加载器-自定义
自定義類(lèi)加載器
問(wèn)問(wèn)自己,什么時(shí)候需要自定義類(lèi)加載器
?? ?1)想加載非 classpath 隨意路徑中的類(lèi)文件
?? ?2)都是通過(guò)接口來(lái)使用實(shí)現(xiàn),希望解耦時(shí),常用在框架設(shè)計(jì)
?? ?3)這些類(lèi)希望予以隔離,不同應(yīng)用的同名類(lèi)都可以加載,不沖突,常見(jiàn)于 tomcat 容器
?
步驟:
?? ?1. 繼承 ClassLoader 父類(lèi)
?? ?2. 要遵從雙親委派機(jī)制,重寫(xiě) findClass 方法
?? ?注意不是重寫(xiě) loadClass 方法,否則不會(huì)走雙親委派機(jī)制
?? ?3. 讀取類(lèi)文件的字節(jié)碼
?? ?4. 調(diào)用父類(lèi)的 defineClass 方法來(lái)加載類(lèi)
?? ?5. 使用者調(diào)用該類(lèi)加載器的 loadClass 方法
?
總結(jié)
- 上一篇: 类加载器-线程上下文
- 下一篇: Java 扫描并加载包路径下class文