Javassist - Javassist

Javassist
Desarrollador (es) Shigeru Chiba (programador)
Lanzamiento estable
3.25.0-GA / 16 de abril de 2019  ( 16/04/2019 )
Repositorio Edita esto en Wikidata
Escrito en Java
Sistema operativo Multiplataforma
Escribe Biblioteca de ingeniería de bytecode
Licencia licencia dual de MPL y LGPL .
Sitio web www .javassist .org

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. En este sentido, Javassist proporciona el soporte para la reflexión estructural , es decir, la capacidad de cambiar la implementación de una clase en tiempo de ejecución .

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. Al utilizar 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 con solo 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 utilizando 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 llama
  • 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

enlaces externos

Página web oficial Edita esto en Wikidata