Agente dinámica (JDK dinámica proxy, CGLIB)

principio de aplicación proxy específico A. JDK dinámico

  • Interfaz para crear su propio procesador de llamadas mediante la implementación de InvocationHandlet;

  • Para crear un cargador de clases dinámico de proxy mediante la especificación de un conjunto de objetos de la interfaz y para la clase Proxy;

  • La obtención de constructor de la clase proxy dinámico por la reflexión, que es el único tipo de parámetro Tipo de interfaz de procesador de llamada;

  • Mediante la creación de clase de proxy objeto de instancia constructor dinámico configurado para llamar al controlador como un parámetro en el parámetro;

    JDK proxy dinámico es un proxy para el modo de interfaz, si el proxy no es la interfaz que el objetivo no puede hacer nada de producción de Primavera, Primavera de nueva clase proxy anónimo que implementa la interfaz a través del mecanismo de reflexión de Java, que volvió a escribir la mejora de la AOP.

Dos proxies dinámicos. CGLIB

CGLIB es un potente, de producción de alto rendimiento de bibliotecas de código, se puede lograr la clase de tiempo de ejecución de Java expansión dinámica, la sucesión de primavera durante la carrera para ser una clase dinámica representación mediante CGLIB, la clase padre reescrito para lograr AOP programación orientada a aspectos de la misma.

III. La comparación entre los dos

  • JDK proxy dinámico es una orientada interfaz.
    se consigue CGLIB proxy dinámico (si la clase de proxy es modificado por la palabra clave final, lo siento fallar) para ser heredado por el código de bytes subyacente clase de proxy.

  • Rendimiento:
    Sobre el rendimiento entre las dos palabras, JDK dinámica de proxy objeto proxy creado en versiones anteriores del JDK, el rendimiento no es muy alta, a pesar de proxy JDK objetos dinámicos en la versión de alto rendimiento se ha mejorado mucho pero también no se aplica a todos los escenarios.

    Sobre todo en los dos indicadores siguientes:

    CGLIB objeto dinámico de proxy creado en el rendimiento de tiempo de ejecución real de alta JDK dinámica montón de proxy de estudios han demostrado que probablemente 10 veces mayor;

    Pero cuando el tiempo CGLIB crear objetos que se tarda en JDK mucho más dinámica de proxy, los estudios han demostrado que aproximadamente 8 veces la brecha;

    Así, para un objeto proxy o una instancia de proxy de la piscina singleton, porque sin frecuentes Crea un objeto proxy, es más adecuado para el proxy CGLIB dinámico, de todos modos, es más adecuado para proxy dinámico JDK.

Publicado 70 artículos originales · ganado elogios 4 · Vistas 6341

Supongo que te gusta

Origin blog.csdn.net/qq_44837912/article/details/104748732
Recomendado
Clasificación