我有编写自定义类加载器的目标,这是从一些自定义存储库加载类所需的,以实现热部署功能并允许卸载类。如果您有类似任务的经验,请分享您的知识。
答案 0 :(得分:1)
无需在您的情况下编写自定义ClassLoader
,URLClassLoader
就足够了,您只需提供一个URL
数组作为参数(对应于类或jar文件的文件夹)包括)到它的构造函数,最终父类加载器(Thread.currentThread().getContextClassLoader()
可能是一个很好的候选者)。
NB:当您打算进行热部署时,请确保在close()
实例上调用URLClassLoader
以正确释放资源。
以下是使用反射动态创建Class
实例的方法:
Class<?> myClass = Class.forName(myClassName, true, myClassLoader);
Object myObject = myClass.newInstance();