У меня есть особое требование, чтобы я был динамически (во время выполнения) способен загружать и выгружать классы бинов в моем контейнере Spring IoC.
Боб должен быть
- создано
- 1008 * уничтожены *
- создано заново (из того же класса, возможно, новая версия того же класса)
Проблема, с которой я сталкиваюсь, заключается в том, что, поскольку класс на шаге 1 загружается в системный загрузчик классов, он остается там даже при уничтожении компонента. Итак, на шаге 3 я получаю объект старого класса, а не нового.
Итак, решение моей проблемы - загрузить класс в MyClassLoader вместо системного загрузчика классов.
Так что мои шаги становятся
- создать определенный загрузчик классов
- создать компонент с помощью специального загрузчика классов
- установить ссылку на bean-компонент в null и удалить компонент из AppContext
- установить ссылку на загрузчик классов на ноль
перезагрузите бин, используя шаги 1 и 2
Мой вопрос: как реализовать вышеуказанный подход в контейнере Spring IoC?
Спасибо,
С уважением,
Vimal