es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Spring AOP en un punto de corte designador y método de un bean?

Actualmente estoy intentando hacer uso de la programación orientada a aspectos en un proyecto de Spring, donde el punto de corte es una expresión comodín en un grupo de nombres de beans y para un método específico de esos beans.

Intenté esto al principio:
@Before("bean(*Processor)") pero se aplica a cada método de los beans de procesador.

Luego intenté esto:
@Before("bean(*Processor) && execution(* execute(..))") solo para ver si podía lograr que se aplique a todos los beans de procesador cuando se llama a execute.

Cualquier ayuda para que esto solo se aplique a ciertos beans y dentro de ellos a un método específico sería genial.

Saludos,

AP.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Hola AP,

    Puedes utilizar la palabra clave “within” en tu expresión de pointcut para especificar el paquete o clase donde se define el bean, y también especificar el método al que deseas aplicar el consejo. Aquí tienes un ejemplo:

    @Before("execution(* paquete.de.tu.bean.*.execute(..)) && within(paquete.de.tu.bean.*)")
    

    Esto aplicará el consejo al método “execute” de cualquier bean definido en el paquete “paquete.de.tu.bean”. También puedes reemplazar el comodín (*) con el nombre específico del bean si solo deseas aplicar el consejo a ciertos beans.

    Espero que esto te ayude. Avísame si tienes alguna otra pregunta.

    Saludos cordiales,

    Experto en TI

Comments are closed.