Saltar al contenido

Spring AOP vs AspectJ

Solución:

Ventajas de Spring-AOP

  • Es más sencillo de usar que AspectJ, ya que no es necesario utilizar LTW (tejido en tiempo de carga) o el compilador de AspectJ.

  • Utiliza el patrón Proxy y el patrón Decorator

Contras de Spring-AOP

  • Este es un AOP basado en proxy, por lo que básicamente solo puede usar puntos de unión de ejecución de método.
  • Los aspectos no se aplican al llamar a otro método dentro de la misma clase.
  • Puede haber una pequeña sobrecarga de tiempo de ejecución.
  • Spring-AOP no puede agregar un aspecto a nada que no haya sido creado por la fábrica de Spring

AspectJ Pros

  • Esto es compatible con todos los puntos de unión. Esto significa que puedes hacer cualquier cosa.
  • Hay menos sobrecarga de tiempo de ejecución que la de Spring AOP.

AspectJ Contras

  • Ten cuidado. Comprueba si tus aspectos están tejidos solo con lo que querías tejer.
  • Necesita un proceso de compilación adicional con AspectJ Compiler o tiene que configurar LTW (tejido en tiempo de carga)

Aparte de lo que otros han dicho, solo para reformular, there are two major differences:

  1. Uno está relacionado con el tipo de tejido.
  2. Otro a la definición de punto de unión.

Primavera-AOP: Runtime tejiendo a través de proxy usando el concepto de dynamic proxy if interface exists or cglib library if direct implementation provided.

AspectoJ: Compilar tiempo entretejiendo AspectJ Java Tools(ajc compiler) si la fuente está disponible o tejido posterior a la compilación (utilizando archivos compilados). Además, se puede habilitar el tejido de tiempo de carga con Spring: necesita el aspectj archivo de definición y ofrece flexibilidad.

El tejido del tiempo de compilación puede ofrecer beneficios de rendimiento (en algunos casos) y también joinpoint definition in Spring-aop is restricted to method definition only which is not the case for AspectJ.

Una nota adicional: Si el rendimiento bajo carga alta es importante, querrá AspectJ, que es 9-35 veces más rápido que Spring AOP. Puede que 10ns vs 355ns no parezca mucho, pero he visto gente que usa MUCHOS Aspectos. 10K de aspectos. En estos casos, su solicitud puede afectar a miles de aspectos. En ese caso, está agregando ms a esa solicitud.

Consulte los puntos de referencia.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *