Javassist

A Wikipédiából, a szabad enciklopédiából
Javassist
FejlesztőShigeru Chiba (programozó)
Programozási nyelvJava
Operációs rendszerCross-platform
PlatformJava virtuális gép
KategóriaBájtkód manipuláló könyvtár
LicencMPL és LGPL.
A Javassist weboldala

A Javassist (Java programming assistant) egy Java könyvtár, amely olyan eszközt nyújt, amelynek segítségével egy alkalmazás Java bájtkódját lehet manipulálni.[1] Ebben az értelemben Javassist támogatást nyújt a strukturális betekintéshez, pl. megadja a lehetőséget, hogy megváltoztathassuk egy osztály implementációját futás időben.

A bájtkód manipulálás betöltési időben történik a osztály betöltőn (angolul class loader-en) keresztül.

Javassist engedélyezi a Java program számára, hogy új osztályokat hozzon létre futásidőben, továbbá class fájlokat módosíthasson a JVM-be való betöltéskor. Más hasonló bájtkód szerkesztőktől különbözően Javassist kétszintű API-t nyújt: forráskód szintűt és bájtkód szintűt. A forráskód szintű API használatával a fejlesztők szerkeszthetik a class fájlt anélkül, hogy ismernék a Java bájtkód specifikációt, az egész API-t a Java nyelv szókincséhez tervezték. A fejlesztők meghatározhatnak beszúrandó bájtkódot Java forrás szöveg formátumban, amit majd a Javassist menet közben lefordít. A bájtkód szintű API viszont lehetővé teszi a felhasználó számára, hogy közvetlenül szerkeszthessen egy class fájt, kvázi másik editorként.

Használata[szerkesztés]

Javassist-et a következő esetekben használják:

  • Bájtkód megadásához forráskóddal - le tud fordítani forrás szöveg részleteket online módon (pl.csak egy utasítást).
  • AOP-hez – új metódusok adhatók hozzá a class-hoz és beszúrás előtt/után/közbeni advice-ok hajthatók végre mind a hívó, mind a hívó oldalán.
  • futás idejű betekintéshez – egy metaobjektumot lehet használni, amely vezérli az alapszintű objektumok metódushívásait.
  • távoli metódushíváshoz – hívható egy webszerveren futó távoli objektumon egy metódus. Ez egy alternatívája lehet az Java RMI-nek avval a különbséggel, hogy nincs szükség egy stub fordítóra, mint amilyen az rmic.

Jegyzetek[szerkesztés]

  1. Javassist. JBoss Community. [2013. október 26-i dátummal az eredetiből archiválva]. (Hozzáférés: 2014. április 12.)

További információk[szerkesztés]

Fordítás[szerkesztés]

Ez a szócikk részben vagy egészben a Javassist című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

Kapcsolódó szócikkek[szerkesztés]