[英]how to instantiate a spring bean using a classloader?
我有一个特定的要求,即我应该能够(在运行时)动态地加载和卸载Spring IoC容器中的bean类。
一个豆需要
我面临的问题是,由于步骤1中的类是在系统类加载器中加载的,因此即使我销毁bean,它也仍然存在。 因此,在第3步中,我得到的是旧类的对象,而不是新类的对象。
因此,解决我的问题的方法是在MyClassLoader中加载类,而不是系统类加载器。
所以我的脚步变成
使用步骤1和2重新加载bean
我的问题是如何在Spring IoC容器中实现上述方法?
谢谢,
问候,
重要的
您可以将一些对象移至上下文,该上下文将通过专用的类加载器重新加载。 为了确保使用正确的类加载器,请在调用刷新之前调用context.setClassLoader(classLoader)
或通过Thread.currentThread().setContextClassLoader(classLoader)
设置线程类加载器。 还请记住,如果要重新加载的类可用于某些常见的父类加载器,则由于父类加载器始终优先,因此不会重新加载它们。
JRebel也许是一个解决方案?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.