Comment puis-je passer des arguments à Spring AOP conseils avec annoté paramètres?

Je suis à l'aide de Printemps 3.1.2.VERSION avec cglib au moment du chargement de tissage et je suis en train d'essayer d'obtenir des conseils pour travailler avec une méthode qui a personnalisé les annotations et annoté paramètres.

Conseils:

@Aspect
public class MyAdvice
{
   @Around("execution(@com.mycompany.locking.Lock * *(@com.mycompany.locking.LockVal(*), ..)) " +
   "&& args(batch) && @args(propertyToLock)"
   public Object lockAndProceed(ProceedingJoinPoint pjp, Object batch, LockVal propertyToLock) throws Throwable { 
        //Do stuff.... 
        pjp.proceed();
   }
}

Ici est la classe que je suis en train de tester:

public interface UpdateManager
{
   public void processUpdate(MyBatchObject batch);
}


public class UpdateManagerImpl implements UpdateManager
{
   @Lock
   public void processUpdate(@LockVal("lockValue") MyBatchObject batch)
   {
      //Do stuff...
   }
}

Le problème est que je ne peux pas obtenir les conseils à exécuter. Si je supprime le @args args et conditions de la coupe transverse (pointcut), les conseils des incendies, mais ensuite, je dois creuser par le biais de la ProceedingJoinPoint pour obtenir le paramètre que j'ai besoin.

Pourquoi ne pas les conseils de cuisson? Ai-je fais quelque chose de mal?

Modifier: La suite de coupe transverse (pointcut) NE fonctionne pas comme un programme autonome avec le Printemps:

@Aspect
public class MyAdvice
{
   @Around("execution(@com.mycompany.locking.Lock * *(@com.mycompany.locking.LockVal(*), ..)) " +
   "&& args(batch)"
   public Object lockAndProceed(ProceedingJoinPoint pjp, Object batch) throws Throwable { 
        //Do stuff.... 
        pjp.proceed();
   }
}

Toutefois, il ne fonctionne PAS sous JBoss 6 en utilisant les temps de charge de tissage. Je suppose que ma question doit être, alors, pourquoi a-t-il comme un programme autonome, mais pas sous JBoss 6?

Je sais que c'est vieux, mais toujours répertorié comme sans réponse. Veuillez s'il vous plaît accepter et upvote de ma réponse, si cela semble approprié? Merci.
J'ai abandonné ce projet, mais je peux dire que le code n'a jamais travaillé, n'importe comment, j'ai couru. Je me souviens, il avait quelque chose à voir avec le plat de chargeur de classe + cglib dans JBoss 6, qui diffère de la version précédente.

OriginalL'auteur Brad | 2013-05-17