Haben Sie sich jemals gefragt, wie Bibliotheken wie Spring, Mockito und JaCoCo beliebiges Verhalten zu bestehenden Objekten hinzufügen oder sie sogar ganz verändern?

In diesem Vortrag werden wir die Generierung und Transformation von Klassen in Java entmystifizieren und untersuchen, wie die JVM es uns ermöglicht, dynamisch Code für die Instrumentierung zu generieren und zu modifizieren. Wir tun dies, indem wir den Code instrumentieren, der den Code selbst instrumentiert, so dass wir beobachten können, wie z. B. Mockito den Code verändert, um Mocking zu implementieren.

Anhand konkreter Beispiele aus realen Anwendungen werden wir aufdecken, wie diese Techniken Java-Code verbessern und instrumentieren, von der Erstellung dynamischer Proxies bis zur Änderung von Bytecode zur Laufzeit. Die Teilnehmer erhalten einen Einblick in den dekompilierten Bytecode, um die Magie hinter den Kulissen zu verstehen.