我的ServiceImpl类包含多个方法。我有一个LoggingAspect,我想根据ServiceImpl中调用的方法动态地将方法参数传递给一个通知。我如何实现这一点?在下面的代码中,我的方法有4个参数,但我的另一个方法有5个参数,第三个有3个。那我如何根据方法参数的数量动态传递参数?
@Aspect
public class LoggingAspect {
@Before("allGenericAppServiceImplMethods(userid,galleryId,sid,imageName)")
public void LoggingAdvice(JoinPoint joinPoint,String userid,String galleryId,String sid,String imageName){
System.out.println("String values are "+userid+" "+sid+" "+galleryId+" "+imageName);
}
@Pointcut("execution(public * com.nrollup.service.impl.GenericAppServiceImpl.*(..)) && args(userid,galleryId,sid,imageName)")
public void allGenericAppServiceImplMethods(String userid,String galleryId,String sid,String imageName)
{
}
}
答案 0 :(得分:0)
您可以使用周围的建议。一个代码片段供您参考:
public void myAdvice(final ProceedingJoinPoint joinPoint) throws Throwable
{
Object[] arguments = joinPoint.getArgs();
}
一旦你有了arguments数组,你可以根据需要对它进行操作。
您可以使用joinPoint.proceed()
继续进行函数调用。