Горячая замена классов в JVM, загруженная Spring с использованием JPDA

Может кто-нибудь поделиться своим опытом по этой теме?

При использовании jpda на tomcat, перезагрузка класса работает даже для классов, загружаемых через Spring? Допустим, у меня есть весенний контекст с несколькими загруженными и созданными экземплярами классов, и я хочу изменить метод в одном из них.

Как правило, класс заменяется, перезагружается, и каждый другой экземпляр создается из новой версии класса. Я полагаю, что даже старые экземпляры заменяются старыми?

Это также работает при использовании Spring? Чтобы у меня был контроллер MVC, и я изменил его метод?

Или я должен использовать JRebel для этого требования.

1 ответ

Решение

Мой опыт показывает, что он работает хорошо и надежно, при условии, что вы, конечно, не измените сигнатуру метода, не добавите поля и т. Д. Изменение реализации любого существующего метода любого класса в контейнере пружины (включая контроллеры MVC) должно работать полностью как и ожидалось. Для справки, в последний раз я проверял это с Tomcat 6, Spring 3 и с использованием "Применить изменения кода" Netbeans 6.9 через удаленный подключенный отладчик, но это стандарт Java, поэтому я сомневаюсь, что IDE сильно на это повлияет.

РЕДАКТИРОВАТЬ: Ничто из вышеперечисленного не касается JRebel (я никогда не использовал его).

Другие вопросы по тегам