in

Tutorial de Spring AOP | Programación Orientada a Aspectos

Programación Orientada a Aspectos (AOP) complementa los OOP en el sentido de que también proporciona modularidad. Pero la unidad clave de la modularidad es el aspecto que la clase.

AOP divide la lógica del programa en partes distintas (llamadas preocupaciones). Se utiliza para aumentar la modularidad mediante preocupaciones transversales.

A preocupación transversal es una preocupación que puede afectar a toda la aplicación y debe estar centralizada en una ubicación en el código como sea posible, como la gestión de transacciones, autenticación, registro, seguridad, etc.


¿Por qué utilizar AOP?

Proporciona la forma conectable de agregar dinámicamente la preocupación adicional antes, después o alrededor de la lógica real. Suponga que hay 10 métodos en una clase como se indica a continuación:

Hay 5 métodos que comienzan en m, 2 métodos que comienzan en n y 3 métodos que comienzan en p.

Entender el escenario Tengo que mantener un registro y enviar una notificación después de llamar a los métodos que comienzan desde m.

Problema sin AOP Podemos llamar a métodos (que mantienen el registro y envía notificaciones) desde los métodos que comienzan con m. En tal escenario, necesitamos escribir el código en los 5 métodos.

Pero, si el cliente dice que en el futuro, no tengo que enviar una notificación, debe cambiar todos los métodos. Conduce al problema de mantenimiento.

Solución con AOP No tenemos que llamar a métodos desde el método. Ahora podemos definir la preocupación adicional como mantener el registro, enviar notificaciones, etc. en el método de una clase. Su entrada se da en el archivo xml.

En el futuro, si el cliente dice que eliminemos la funcionalidad del notificador, necesitamos cambiar solo en el archivo xml. Entonces, el mantenimiento es fácil en AOP.


¿Dónde usar AOP?

AOP se usa principalmente en los siguientes casos:

  • para proporcionar servicios empresariales declarativos como la gestión de transacciones declarativas.
  • Permite a los usuarios implementar aspectos personalizados.

Conceptos y terminología de AOP

Los conceptos y terminologías de AOP son los siguientes:

  • Punto de unión
  • Consejo
  • Pointcut
  • Introducción
  • Objeto de destino
  • Aspecto
  • Interceptador
  • Proxy AOP
  • Costura

Punto de unión

El punto de unión es cualquier punto de su programa, como la ejecución de métodos, el manejo de excepciones, el acceso a campos, etc. Spring solo admite el punto de unión de ejecución de métodos.


Consejo

El aviso representa una acción realizada por un aspecto en un punto de unión en particular. Existen diferentes tipos de consejos:

  • Antes del consejo: se ejecuta antes de un punto de unión.
  • Después de devolver el consejo: se ejecuta después de que un punto de unión se completa normalmente.
  • Después de lanzar consejos: se ejecuta si el método sale lanzando una excepción.
  • Después (finalmente) de un consejo: se ejecuta después de un punto de unión independientemente de la salida del punto de unión, ya sea un retorno normal o excepcional.
  • Alrededor de consejos: Se ejecuta antes y después de un punto de unión.

Pointcut

Es un lenguaje de expresión de AOP que coincide con puntos de unión.


Introducción

Significa la introducción de métodos y campos adicionales para un tipo. Le permite introducir una nueva interfaz a cualquier objeto recomendado.


Objeto de destino

Es el objeto, es decir, ser asesorado por uno o más aspectos. También se conoce como objeto proxy en primavera porque Spring AOP se implementa utilizando proxies en tiempo de ejecución.


Aspecto

Es una clase que contiene consejos, puntos de unión, etc.


Interceptador

Es un aspecto que contiene solo un consejo.


Proxy AOP

Se utiliza para implementar contratos de aspectos, creados por el marco AOP. Será un proxy dinámico JDK o un proxy CGLIB en el marco de Spring.


Costura

Es el proceso de vincular aspectos con otros tipos de aplicaciones u objetos para crear un objeto recomendado. El tejido se puede realizar en tiempo de compilación, tiempo de carga o tiempo de ejecución. Spring AOP realiza el tejido en tiempo de ejecución.


Implementaciones de AOP

Las implementaciones de AOP son proporcionadas por:

  1. AspectoJ
  2. Primavera AOP
  3. JBoss AOP

Primavera AOP

Spring AOP se puede utilizar de las 3 formas que se indican a continuación. Pero el enfoque más utilizado es el estilo de anotación Spring AspectJ. Las 3 formas de usar Spring AOP se dan a continuación:

  1. Por Spring1.2 Estilo antiguo (basado en dtd) (también compatible con Spring3)
  2. Por estilo de anotación de AspectJ
  3. Por estilo de configuración Spring XML (basado en esquema)

Enlaces de referencia

Fuente de primavera AOP
API de Spring Source AOP
Wikipedia

Deja una respuesta

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

Función DATEPART () de SQL Server

conceptual view

Sistema operativo: descripción general