AOP: java.lang.IllegalArgumentException: error en :: 0 no se puede encontrar el punto de corte referenciado
Soy nuevo en AOP. Tengo un problema como este.
<code>package org.suman.Aspect; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; @Aspect public class LoginAspect { //@Before("execution(public String getName())") //@Before("execution(public String org.suman.Model.Triangle.getName())") //@Before("execution(* get*())") //@Before("execution(* get*(..))") //@Before("execution(* org.suman.Model.*.get*())") //@Before("execution(* get*())&& within(org.suman.Model.Circle)") @Before("execution(* get*())&& allCircle()") //@Before("allGetters() && allCircle()") public void LoginAdvice() { System.out.println("Advice run.. getMethod is called"); } @Before("execution(* get*())") //@Before("allGetters()") public void SecondAdvice() { System.out.println("this is a second Advice"); } @Pointcut("execution(* get*())") public void allGetters(){} //@Pointcut("execution (* * org.suman.Model.Circle.*(..))") @Pointcut("within(org.suman.Model.Circle)") public void allCircle(){} } </code>
al usar pointcut, el método allGetters () al método LoginAdvice, si uso @Before ("ejecución (* get * ())"), no hay error, pero si uso @Before ("allGetters ()") da error " java.lang.IllegalArgumentException: error en :: 0 no puedo encontrar todos los generadores de puntos de corte a los que se hace referencia
si uso @Before ("ejecución (* get * ()) && en (org.suman.Model.Circle)") en lugar del nombre del método funciona.
Mi xml me gusta esto:
<code><?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"> <!-- <context:annotation-config /> --> <aop:aspectj-autoproxy /> <bean name="triangle" class="org.suman.Model.Triangle"> <property name="name" value="Triangle Name"></property> </bean> <bean name="circle" class="org.suman.Model.Circle"> <property name="name" value="Circle name"></property> </bean> <bean name="shapeService" class="org.suman.Services.ShapeService" autowire="byName"></bean> <bean name="loginAspect" class="org.suman.Aspect.LoginAspect"></bean> </beans> </code>
Por favor, resuelva el problema con el punto de corte por el que toma método