2016-07-22 26 views
0

私のServiceImplクラスには複数のメソッドがあります.1つのLoggingAspectがあり、ServiceImplで呼び出されたメソッドに基づいて、メソッドパラメータをアドバイスに動的に渡します。どのように私はこれを達成するのですか?以下のコードで私のメソッドは4つのパラメータを持っていますが、私の他のメソッドの1つに5つのパラメータがあり、3つ目は3です。Spring AOP: - メソッドのパラメータをアドバイスに動的に渡す

@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

これについてaroundアドバイスを使用できます。参考のためのコードスニペット:

public void myAdvice(final ProceedingJoinPoint joinPoint) throws Throwable 
{ 
    Object[] arguments = joinPoint.getArgs(); 
} 

あなたが引数配列を取得したら、それを必要に応じて操作できます。

joinPoint.proceed()を使用すると、関数呼び出しを続けることができます。

+0

ありがとうございました。 –

+0

@FormParam( "userid")String tuserid、----> getArgs()は値だけでなく、この場合の名前ではなく、値とともに動的にパラメータの名前を取得することができます。 "userid" ......ここにWebサービスを使用しています... –

+0

Webサービスまたは単純なJavaプログラムを使用している場合は関係ありません。あなたは私が推測するものにAOPを使うことができます。 –

関連する問題