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