AOP con Spring Framework

Uno de los componentes clave de Spring Framework es el Aspect oriented programming (AOP)marco de referencia. La Programación Orientada a Aspectos implica dividir la lógica del programa en partes distintas denominadas preocupaciones. Las funciones que abarcan varios puntos de una aplicación se denominancross-cutting concernsy estas preocupaciones transversales están conceptualmente separadas de la lógica empresarial de la aplicación. Hay varios buenos ejemplos comunes de aspectos como registro, auditoría, transacciones declarativas, seguridad, almacenamiento en caché, etc.

La unidad clave de modularidad en OOP es la clase, mientras que en AOP la unidad de modularidad es el aspecto. La inyección de dependencia lo ayuda a desacoplar los objetos de su aplicación entre sí y AOP lo ayuda a desacoplar las preocupaciones transversales de los objetos a los que afectan. AOP es como disparadores en lenguajes de programación como Perl, .NET, Java y otros.

El módulo Spring AOP proporciona interceptores para interceptar una aplicación. Por ejemplo, cuando se ejecuta un método, puede agregar funcionalidad adicional antes o después de la ejecución del método.

Terminologías AOP

Antes de comenzar a trabajar con AOP, familiaricémonos con los conceptos y la terminología de AOP. Estos términos no son específicos de Spring, sino que están relacionados con AOP.

No Señor Términos y descripción
1

Aspect

Este es un módulo que tiene un conjunto de API que proporcionan requisitos transversales. Por ejemplo, un módulo de registro se llamaría aspecto AOP para el registro. Una aplicación puede tener varios aspectos según el requisito.

2

Join point

Esto representa un punto en su aplicación donde puede conectar el aspecto AOP. También puede decir que es el lugar real en la aplicación donde se tomará una acción utilizando el marco Spring AOP.

3

Advice

Esta es la acción real que se debe realizar antes o después de la ejecución del método. Este es un fragmento de código real que se invoca durante la ejecución del programa por el marco Spring AOP.

4

Pointcut

Este es un conjunto de uno o más puntos de unión donde se debe ejecutar un aviso. Puede especificar cortes de puntos usando expresiones o patrones como veremos en nuestros ejemplos de AOP.

5

Introduction

Una introducción le permite agregar nuevos métodos o atributos a las clases existentes.

6

Target object

El objeto está aconsejado por uno o más aspectos. Este objeto siempre será un objeto proxy, también denominado objeto aconsejado.

7

Weaving

Tejer es el proceso de vincular aspectos con otros tipos de aplicaciones u objetos para crear un objeto recomendado. Esto se puede hacer en tiempo de compilación, tiempo de carga o en tiempo de ejecución.

Tipos de asesoramiento

Los aspectos de primavera pueden funcionar con cinco tipos de consejos que se mencionan a continuación:

No Señor Asesoramiento y descripción
1

before

Ejecute un consejo antes de la ejecución de un método.

2

after

Ejecute un consejo después de la ejecución del método, independientemente de su resultado.

3

after-returning

Ejecute un consejo después de la ejecución de un método solo si el método se completa correctamente.

4

after-throwing

Ejecute un consejo después de la ejecución de un método solo si el método sale lanzando una excepción.

5

around

Ejecute un consejo antes y después de que se invoque el método recomendado.

Implementación de aspectos personalizados

Spring apoya el @AspectJ annotation style enfoque y el schema-basedenfoque para implementar aspectos personalizados. Estos dos enfoques se han explicado en detalle en las siguientes secciones.

No Señor Enfoque y descripción
1 Basado en esquema XML

Los aspectos se implementan utilizando las clases regulares junto con la configuración basada en XML.

2 @AspectJ basado

@AspectJ se refiere a un estilo de declaración de aspectos como clases regulares de Java anotadas con anotaciones de Java 5.