Tajemství aktualizace Groovy tříd za běhu

Jednou ze základních věcí, kterým by měl člověk rozumět, před tím, než se pustí do integrace Groovy do své aplikace / frameworku jsou otázky související s class loadingem. Důvod proč jsme zvolili právě Groovy jako náš primární skriptovací jazyk (kromě toho, že jako Java programátorům je nám Groovy jazyk nejbližší) je velmi dobrá podpora aktualizace změněných tříd za běhu aplikace. Jenže co se vlastně přesně děje, když Groovy "obnovuje" třídy, kterým jsme změnili zdrojový kód? Co se stane s existujícími instancemi, které mají reference k této třídě? Je vůbec možné v JVM změnit strukturu třídy za běhu? Ano, JavaRebel to umí, jenže k tomu potřebuje speciální nastavení a debugovací režim, aby mohl využít hotswapu. A jak se k tomu všemu staví Spring Framework a jeho podpora pro skriptovací jazyky? Při čtení dokumentace to vypadá, jako by to všechno prostě magicky fungovalo! Tucty otázek mi běžely halvou, když jsem se snažil o integraci Groovy do našeho produktu. Na své otázky jsem se snažil odpovědět v následujícím článku ... (pouze v angličtině).

Diskuzní příspěvky
Zatím zde nejsou žádné zprávy