我正在使用Spring 3.1.2.RELEASE和cglib加载时织入,我尝试让建议与具有自定义注释和注释参数的方法一起使用。
建议:
问题在于我无法获得执行建议的建议。如果我在切入点中删除@args和args条件,则建议将被触发,但是我必须查看ProceedingJoinPoint以获取所需的参数。
为什么建议没有被触发?我做错了什么吗?
编辑:以下切入点与Spring作为独立程序一起使用。
建议:
@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();
}
}
这是我正在测试的类:
public interface UpdateManager
{
public void processUpdate(MyBatchObject batch);
}
public class UpdateManagerImpl implements UpdateManager
{
@Lock
public void processUpdate(@LockVal("lockValue") MyBatchObject batch)
{
//Do stuff...
}
}
问题在于我无法获得执行建议的建议。如果我在切入点中删除@args和args条件,则建议将被触发,但是我必须查看ProceedingJoinPoint以获取所需的参数。
为什么建议没有被触发?我做错了什么吗?
编辑:以下切入点与Spring作为独立程序一起使用。
@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();
}
}
然而,使用load-time weaving在JBoss 6下它不起作用。我想我的问题应该是,为什么它可以作为独立程序工作,但在JBoss 6下却不能工作?