Además de usando anotaciones, Spring permite utilizar la programación orientada a aspectos definiendo los elementos que intervienen en la misma a través de ficheros de configuración XML.

Cuando se trata de introducir una tecnología como la AOP es más sencillo empezar viendo ejemplos sencillos sobre el código fuente, y es por ello que se ha empezado viendo primero las anotaciones y ahora se expone la nomenclatura XML, en vez de al revés como se ha hecho con el resto de apartados vistos hasta ahora.

Schema

Para poder utilizar las etiquetas XML hay que incluir el namespace AOP de Spring:

Configuración

La configuración de la AOP en un fichero de configuración se declara dentro de bloques etiquetados con aop:config, pudiendo existir tantos como se necesiten:

Aspect

Un aspect se declara utilizando la etiqueta aop:aspect y haciendo referencia a un bean:

Pointcut

Un pointcut se declara utilizando la etiqueta aop:pointcut acompañada de una expresión regular:

Los pointcuts se pueden combinar utilizando “or”, “and” y “not”.

Advice

Un advice se declara utilizando la etiqueta correspondiente al tipo de ejecución deseada, junto con una expresión regular o una referencia a un pointcut, y el nombre del método con la implementación.

Con aop:before se captura la llamada al método antes de que se produzca:

Con aop:after-returning se captura la llamada al método cuando termina correctamente:

Con aop:after-throwing se captura la llamada al método cuando termina elevando una excepción:

Con aop:after se captura la llamada al método cuando termina normalmente o elevando una excepción:

Con aop:around se puede reemplazar un método completo:

En todos los casos, las reglas que tienen que seguir los métodos definidos en las etiquetas son las mismas que las indicadas con el uso de anotaciones.