Javassist ( Java de programación ayudar hormiga) es una de Java biblioteca que proporciona un medio para manipular el código de bytes de Java de una aplicación. [1] En este sentido, Javassist proporciona el apoyo para la reflexión estructural , es decir, la capacidad de cambiar la implementación de una clase en tiempo de ejecución .
Desarrollador (es) | Shigeru Chiba (programador) |
---|---|
Lanzamiento estable | 3.25.0-GA / 16 de abril de 2019 |
Repositorio | ![]() |
Escrito en | Java |
Sistema operativo | Multiplataforma |
Tipo | Biblioteca de ingeniería de código de bytes |
Licencia | licencia dual de MPL y LGPL . |
Sitio web | www |
La manipulación del código de bytes se realiza en tiempo de carga a través de un cargador de clases proporcionado .
Javassist permite a los programas Java definir una nueva clase en tiempo de ejecución y modificar un archivo de clase cuando la JVM lo carga. A diferencia de otros editores de códigos de bytes similares, Javassist proporciona dos niveles de API: nivel de fuente y nivel de código de bytes. Usando la API de nivel de fuente, los programadores pueden editar un archivo de clase sin conocer las especificaciones del código de bytes de Java; toda la API está diseñada solo con el vocabulario del lenguaje Java. Los programadores pueden incluso especificar el código de bytes insertado en forma de texto fuente Java; Javassist lo compila sobre la marcha. Por otro lado, la API a nivel de código de bytes permite a los usuarios editar directamente un archivo de clase como otros editores.
Usos
Javassist se puede utilizar para lo siguiente:
- Para especificar el código de bytes usando el código fuente, puede compilar un fragmento de texto fuente en línea (por ejemplo, una sola declaración)
- Para la programación orientada a aspectos (AOP): puede introducir nuevos métodos en una clase e insertar consejos antes / después / alrededor tanto de la persona que llama como de la persona que recibe la llamada.
- Para la reflexión en tiempo de ejecución: puede usar un metaobjeto que controla las llamadas a métodos en objetos de nivel base.
- Para la invocación de métodos remotos : puede llamar a un método en un objeto remoto que se ejecuta en un servidor web, una alternativa a Java RMI que no necesita un compilador stub como rmic
Ver también
Referencias
- ^ "Javassist" . Comunidad JBoss.